k8s作为当前企业的容器编排工具,生产环境已经非常多的使用了,所以一定要保证集群的高可用,k8s其实最重要的是api-server组件,这是整个集群的唯一入口,所以一定要保证整个集群的正常运行。

这里使用kubeadmin部署,在1.13版本之后kubeadmin可以使用在生产环境,,所以这里使用1.15版本部署,当然二进制部署也是可以的。看自己的喜好。

基础环境配置,防火墙,selinux这些,yum源都不配置了哈,参考之前的文档。

安装: yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

systemctl enable kubelet

所有master上面执行

node安装yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0 systemctl enable kubelet 完成之后下载镜像

kubeadm config images list 查看需要的镜像有哪些

docker pull /google_containers/kube-apiserver:v1.15.10 docker pull /google_containers/kube-controller-manager:v1.15.10 docker pull /google_containers/kube-scheduler:v1.15.10 docker pull /google_containers/kube-proxy:v1.15.10 docker pull /google_containers/pause:3.1 docker pull /google_containers/etcd:3.3.10 docker pull /google_containers/coredns:1.3.1

这里使用的 是阿里云镜像哈

所有的配置我都放到了百度网盘 链接:https://pan.baidu.com/s/167-yXwqK28gXDUBw3E0BxA 提取码:mlr7

安装 keepalived

所有master yum install keepalived -y

完成之后修改配置

这里以master1举例

这些地方都是注意的,priority 这个权重另外2个机器是90 和70 ,其他的都不变就行

然后启动就行了 systemctl restart keepalived

自己可以测试关闭,看看vip是否会漂移,我这里是可以的

接下来安装haproxy所有master节点

yum install haproxy -y

三个机器的都是一样的,直接拷贝过去就行不用修改

然后启动就行

systemctl start haproxy

编写 kubeadm 配置文件 在一个master上面就行

其中podSubnet是最重要的,不然后面flannel启动不了一定要添加

接下来启动 kubeadm init --config=kubeadm-init.yaml --experimental-upload-certs

上面是master使用,下面是ndoe使用

然后查看状态安装网络插件flannel

接下来另外2个master加入集群

完成之后都要执行 查看一下效果在另外的一个master上面

所有的都启动了接下来开始加入node节点

好了加入完成看一下

随便找个master启动一个容器测试一下‘’ 在拉nginx镜像,稍等会 验证一下效果

访问一下

现在vip在master1上面,接下来模拟故障,看看vip是否会漂移,集群会不会不能用

ip地址已经飘过来了

等恢复之后在加入集群就好了 高可用部署就到这里,有什么问题欢迎留言私信