1,说明:
在K8s集群中,如果Node节点宕机,master可以实现node节点的故障转移,但是如果单master节点出现问题,就会造成集群的不可用,因此master节点的高可用显得尤为重要
本次高可用使用之前k8s集群主机,只搭建演示k8s master节点的高可用。
2,系统初始化
2.1 准备3台主机,按照前面博客所写系统初始化步骤进行系统初始化
2.2 按照前面博客安装docker软件
3,在主节点启动 Haproxy 与 Keepalived 容器
导入脚本 > 运行 > 查看可用节点
4,安装 Kubeadm (主从配置)
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
systemctl enable kubelet.service
5 初始化主节点
kubeadm config print init-defaults > kubeadm-config.yaml
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
6, 加入主节点以及其余工作节点
执行安装日志中的命令即可
7, Etcd 集群状态查看
kubectl -n kube-system exec etcd-k8s-master01 -- etcdctl \
--endpoints=https://192.168.92.10:2379 \
--ca-file=/etc/kubernetes/pki/etcd/ca.crt \
--cert-file=/etc/kubernetes/pki/etcd/server.crt \
--key-file=/etc/kubernetes/pki/etcd/server.key cluster-health
kubectl get endpoints kube-controller-manager --namespace=kube-system -o yaml kubectl get endpoints kube-scheduler --namespace=kube-system -o yaml
8,部署网络
kubectl apply -f kube-flannel.yml