进级节制节点
- $ kubeadm upgrade plan
- $ kubeadm upgrade apply v1.15.0
重启 kubelet:
- $ systemctl restart kubelet
着实 kubelet 进级很简朴粗暴,我们只必要把新版本的 kubelet 拷贝到 /usr/bin 下面,重启 kubelet service 即可,假如措施正在行使不让包围那么就停一下 kubelet 再举办拷贝,kubelet bin 文件在 conf/bin 目次下。
进级其余节制节点:
- $ kubeadm upgrade apply
进级 Node
遣散节点(要不要遣散看环境, 喜好粗暴的直接来也没啥):
- $ kubectl drain $NODE --ignore-daemonsets
更新 kubelet 设置:
- $ kubeadm upgrade node config --kubelet-version v1.15.0
然后进级 kubelet。同样是替代二进制再重启 kubelet service。
- $ systemctl restart kubelet
召回失去的恋爱:
- $ kubectl uncordon $NODE
验证
- $ kubectl get nodes
假如版本信息都对的话根基就进级乐成了。
kubeadm upgrade apply 干了啥?
- 搜查集群是否可进级
- 执行版本进级计策 哪些版本之间可以进级
- 确认镜像是否存在
- 执行节制组件进级,假如失败就回滚,着实就是 apiserver、controller manager、scheduler 等这些容器
- 进级 kube-dns 和 kube-proxy
- 建设新的证书文件,备份老的假如其高出 180 天
源码编译
由于行使了 netlink 库,以是保举在容器内举办编译,只需一条呼吁:
- $ docker run --rm -v $GOPATH/src/github.com/fanux/sealos:/go/src/github.com/fanux/sealos -w /go/src/github.com/fanux/sealos -it golang:1.12.7 go build
假如你行使的是 go mod,则必要指定通过 vendor 编译:
- $ go build -mod vendor
卸载
- $ sealos clean
- --master 192.168.0.2
- --master 192.168.0.3
- --master 192.168.0.4
- --node 192.168.0.5
- --user root
- --passwd your-server-password
sealos 实现道理
执行流程
- 通过 sftp 可能 wget 把离线安装包拷贝到方针呆板上(masters 和 nodes)。
- 在 master0 上执行 kubeadm init。
- 在其余 Master 上执行 kubeadm join 并配置节制面,这个进程会在其余 Master 上起动 etcd 并与 master0 的 etcd 构成集群,并启动节制平面的组件(apiserver、controller 等)。
- join node 节点,会在 Node 上设置 IPVS 法则,设置 /etc/hosts 等。
全部对 apiserver 的哀求都是通过域名举办会见,由于 Node 必要通过假造 IP 毗连多个 Master,每个节点的 kubelet 与 kube-proxy 会见 apiserver 的假造地点是纷歧样的,而 kubeadm 又只能在设置文件中指定一个地点,以是行使一个域名可是每个节点理会的 IP 差异。当 IP 地点产生变革时仅必要修改理会地点即可。
当地内核负载
通过这样的方法实现每个 Node 上通过当地内核负载平衡会见 masters:
- +----------+ +---------------+ virturl server: 127.0.0.1:6443
- | mater0 |<----------------------| ipvs nodes | real servers:
- +----------+ |+---------------+ 10.103.97.200:6443
- | 10.103.97.201:6443
- +----------+ | 10.103.97.202:6443
- | mater1 |<---------------------+
- +----------+ |
- |
- +----------+ |
- | mater2 |<---------------------+
- +----------+
在 Node 上起了一个 LVScare 的 static pod 去保卫这个 IPVS,一旦 apiserver 不行会见了,会自动整理掉全部 Node 上对应的 IPVS 法则, Master 规复正常时添加返来。 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|