1、在一台主机上配置Kubernebtes

  • 使用sealos进行安装,方便快捷

安装sealos

# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos && \
    chmod +x sealos && mv sealos /usr/bin 

下载kubernetes安装包

# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/d551b0b9e67e0416d0f9dce870a16665-1.18.0/kube1.18.0.tar.gz 

部署kubernetes

  • 只有一台服务器时
sealos init --passwd 123456 \
	--master 192.168.0.2  \
	--pkg-url /root/kube1.18.0.tar.gz \
	--version v1.18.0

passwd换成你自己服务器的ssh登录密码,也可以将自己的公钥放入authorized_keys,这样可以省略–passwd 123456 \这一行。master表示自己要部署的主机节点,没有node节点就不用设置了。

  • 多台服务器时
sealos init --passwd 123456 \
	--master 192.168.0.2  --master 192.168.0.3  --master 192.168.0.4  \
	--node 192.168.0.5 \
	--pkg-url /root/kube1.18.0.tar.gz \
	--version v1.18.0

2、在master节点部署k8s组件

污点介绍

参考文章kubernetes学习总结-10集群调度

  • 简介

污点和容忍
例子:小明睡觉打呼噜(Taint污点),小华说可以接受小明打呼噜和他做室友(Toleration),小刚却没办法容忍室友打呼噜,不愿与小明做室友

  • 使用kubectl taint命令可以给某个节点设置污点,node设置污点之后就和pod存在一种相斥的关系,可以让node拒绝pod的调度执行,甚至将node已经存在的pod驱逐出去
  • 污点添加格式为
kubectl taint nodes node1 key=value:NoSchedule
kubectl taint nodes node1 key=value:NoExecute
kubectl taint nodes node1 key=value:PreferNoSchedule

每个污点有一个key和value作为污点的标签,其中value可以为空,冒号后面描述污点的作用,有下面三个选项

  • NoSchedule:表示k8s将不会将pod部署到该node上面
  • PreferNoSchedule: 表示k8s将尽量避免将pod部署到该node上面
  • NoExecute: 表示k8s将不会将pod部署到该node上面,同时会对已经存在在该node上的pod进行驱逐(删除)
  • 污点去除格式为
kubectl taint nodes node1 key=value:NoSchedule-
kubectl taint nodes node1 key=value:NoExecute-
kubectl taint nodes node1 key=value:PreferNoSchedule-

测试

主机上只有一个master节点
在这里插入图片描述

  • 有污点时
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到pod无法被创建
  • 去除污点后

在这里插入图片描述
可以看到pod已经成功运行

Logo

开源、云原生的融合云平台

更多推荐