如何使用Kubeadm设置高可用性Kubernetes集群( 二 )
保存并退出文件 。
文章插图
现在将这些三个文件(check_apiserver.sh , keepalived.conf和haproxy.cfg)从k8s-master-1复制到k8s-master-2和3
运行以下for循环将这些文件scp复制到master 2和3上;
[kadmin@k8s-master-1 ~]$ for f in k8s-master-2 k8s-master-3; do scp /etc/keepalived/check_apiserver.sh /etc/keepalived/keepalived.conf root@$f:/etc/keepalived; scp /etc/haproxy/haproxy.cfg root@$f:/etc/haproxy; done
注意:别忘了更改我们在上面针对k8s-master-2和3讨论的keepalived.conf文件中的两个参数 。
如果防火墙在主节点上运行 , 则在所有三个主节点上添加以下防火墙规则
$ sudo firewall-cmd --add-rich-rule='rule protocol value="http://kandian.youth.cn/index/vrrp" accept' --permanent$ sudo firewall-cmd --permanent --add-port=8443/tcp$ sudo firewall-cmd --reload
现在 , 使用以下命令在所有三个主节点上启动并启用keepalived和haproxy服务:
$ sudo systemctl enable keepalived --now$ sudo systemctl enable haproxy --now
这些服务成功启动后 , 请验证是否已在k8s-master-1节点上启用了VIP(虚拟IP) , 因为我们已在keepalived配置文件中将k8s-master-1标记为MASTER节点 。
文章插图
完美 , 上面的输出确认已在k8s-master-1上启用了VIP 。
步骤3. 禁用Swap分区 , 将SELinux设置为主节点和辅助节点的许可规则和防火墙规则在所有节点(包括工作节点)上禁用交换空间 , 运行以下命令:
$ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
在所有主节点和工作节点上将SELinux设置为Permissive , 运行以下命令 ,
$ sudo setenforce 0$ sudo sed -i's / ^ SELINUX = enforcing $ / SELINUX = permissive /'/ etc / selinux / config
主节点的防火墙规则:
如果防火墙在主节点上运行 , 则在防火墙中允许以下端口
文章插图
所有主节点上运行以下firewall-cmd命令:
$ sudo firewall-cmd --permanent --add-port=6443/tcp$ sudo firewall-cmd --permanent --add-port=2379-2380/tcp$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=10251/tcp$ sudo firewall-cmd --permanent --add-port=10252/tcp$ sudo firewall-cmd --permanent --add-port=179/tcp$ sudo firewall-cmd --permanent --add-port=4789/udp$ sudo firewall-cmd --reload$ sudo modprobe br_netfilter$ sudo sh -c "echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1' > /proc/sys/net/ipv4/ip_forward"
工作节点的防火墙规则:
如果防火墙在工作节点上运行 , 则在所有工作程序节点上允许防火墙中的以下端口
文章插图
在所有工作节点上运行以下命令:
$ sudo firewall-cmd --permanent --add-port=10250/tcp$ sudo firewall-cmd --permanent --add-port=30000-32767/tcp$ sudo firewall-cmd --permanent --add-port=179/tcp$ sudo firewall-cmd --permanent --add-port=4789/udp$ sudo firewall-cmd --reload$ sudo modprobe br_netfilter$ sudo sh -c "echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables"$ sudo sh -c "echo '1' > /proc/sys/net/ipv4/ip_forward"
步骤4. 在主节点和工作节点上安装容器运行(CRI)Docker在所有主节点和工作节点上安装Docker , 运行以下命令
$ sudo yum install -y yum-utils$ sudo yum-config-manager --add-repo $ sudo yum install docker-ce -y
运行以下systemctl命令以启动并启用docker服务(在所有主节点和工作节点上也运行此命令)
$ sudo systemctl enable docker --now
现在 , 让我们在下一步中安装kubeadm , kubelet和kubectl
步骤5. 安装Kubeadm , kubelet和kubectl在所有主节点和辅助节点上安装kubeadm , kubelet和kubectl 。 首先安装这些软件包之前 , 我们必须配置Kubernetes repo仓库 , 在每个主节点和工作节点上运行以下命令
cat <
$ sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
运行以下systemctl命令以在所有节点(主节点和工作节点)上启用kubelet服务
$ sudo systemctl enable kubelet --now
步骤6. 从第一个主节点初始化Kubernetes集群现在到第一个主节点终端下执行以下命令
[kadmin@k8s-master-1 ~]$ sudo kubeadm init --control-plane-endpoint "vip-k8s-master:8443" --upload-certs
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 培育|跨境电商人才如何培育,长沙有“谱”了
- 抖音小店|抖音进军电商,短视频的商业模式与变现,创业者该如何抓住机遇?
- 计费|5G是如何计费的?
- QuestMobile|QuestMobile:百度智能小程序月人均使用个数达9.6个
- 车轮旋转|牵引力控制系统是如何工作的?它有什么作用?
- 视频|短视频如何在前3秒吸引用户眼球?
- Vlog|中国Vlog|中国基建如何升级?看5G+智慧工地