从早期的时候,k8s的部署是比较繁琐,到kubeadm等工具的完善,集群部署变成更加容易,同时也隐藏了很多细节,适当的了解如何使用kubeadm 工具一步步完成完成集群的部署,了解其中的细节,对于容器平台的维护者意义更大。
配置 vip 转发到 Master1_IP:6443 ,Master2_IP:6443,Master3_IP:6443, 本文以haproxy为例创建一个简单的负载均衡
初始化配置可以只添加一个master1_ip,等全部集群部署完毕,再去掉注释部分,重启haproxy服务即可。
设置主机名,更新/etc/hosts,具体操作略,初始化所有节点包含如下步骤:
可以通过yum list kubeadm --showduplicates 这种方式来列出仓库中相关的软件版本,根据需要选择你要安装的版本
更多细节参考:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#check-required-ports
初始化k8s集群第一个master节点需要完成如下步骤:
1.生成kubeadm-init.yaml 这里是一个关键步骤,我会对配置中的关键配置做简要说明:
2.执行 kubeadm init 初始化第一个master节点,–upload-certs 不能遗漏,不然后续添加master只能手动拷贝master1的证书文件了
3.配置本机的默认kubeconfig,确保kubectl命令能够和apisever认证交互
4.部署cni网络插件,这里以flannel为例,注意kube-flannel.yml内的子网定义要和kubeadm-init.yaml里定义的一致
更多参考 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ ,下面是一键部署脚本:
修改文件中Network配置后,执行 kubectl apply -f kube-flannel.yml
执行完毕后记录下 kubeadm 返回的信息,后续添加节点需要使用
对master节点进行扩需要完成如下操作:
最后实际执行的结果类同如下(请根据实际结果)
kubeadm join 172.16.0.2:6443 --token nlaa8f.6oryd1alvspf6r7i --discovery-token-ca-cert-hash sha256:40bdab940b643a1e6958c39d44949dfb9cc6e610d26ea5172307112ecb64afdc --control-plane
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
对master节点进行扩需要完成如下操作:
最后实际执行的结果类同如下(请根据实际结果)
kubeadm join 172.16.0.2:6443 --token nlaa8f.6oryd1alvspf6r7i --discovery-token-ca-cert-hash sha256:40bdab940b643a1e6958c39d44949dfb9cc6e610d26ea5172307112ecb64afdc --control-plane
替换实际的node_name
kubectl label node --overwrite node-role.kubernetes.io/node=
kubectl get cs
kubectl get nodes
kubectl get pods --all-namespaces
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论