- 云原生Kubernetes全栈架构师实战
- 杜宽
- 417字
- 2023-09-15 17:43:43
1.12 注意事项
1.配置方面
和二进制安装方式不同的是,使用Kubeadm安装的Kubernetes集群,大部分组件都是以容器的方式运行的,比如kube-apiserver、kube-proxy等,可以通过kubectl get po -n kube-system查看系统的Pod。
Master节点的组件kube-apiserver、kube-scheduler、kube-controller-manager、etcd的配置和启动文件默认都放置在/etc/kubernetes/manifests,以静态Pod的方式启动。比如apiserver的kube-apiserver.yaml,该YAML文件更改后,kubelet会自动刷新配置,也就是会重启Pod,无须其他的操作。
另外需要注意的是,kube-proxy是以DaemonSet(守护进程集,会在所有符合条件的节点上部署一个Pod)的方式安装的,其配置文件使用Kubernetes的ConfigMap进行管理,并非宿主机上的某个文件,如果需要修改kube-proxy的配置,需要更改该ConfigMap之后,再对kube-proxy进行滚动更新才会生效。
比如将kube-proxy代理模式改为ipvs模式,可以通过kubectl命令编辑kube-proxy配置文件的ConfigMap。以下操作在Master01上执行。
# kubectl edit cm kube-proxy -n kube-system mode: ipvs # mode更改为ipvs
更新Kube-Proxy的Pod:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P45_132793.jpg?sign=1739198797-ZEWgzoYP4uZml0nn5z9sxJ7YDiUdGrk6-0-c3801da49803df4f811e6f926d5c0cf9)
验证Kube-Proxy模式:
# curl 127.0.0.1:10249/proxyMode ipvs
2.污点方面
Kubeadm安装后,会自动添加NoSchedule的污点,所以Master节点默认不允许部署非系统Pod,可以通过删除污点的方式允许部署。首先查看污点:
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P45_132795.jpg?sign=1739198797-urb0QdBjB8GUbtrYs1rNlL9EwreUOIK6-0-f3fc6517ebe91d4affa9aea6ab1c05d5)
然后删除污点(生产环境最好不要在Master节点部署其他Pod):
![](https://epubservercos.yuewen.com/27A31B/26581513401334806/epubprivate/OEBPS/Images/Figure-P45_132796.jpg?sign=1739198797-l85Bb44qAXgWOv47cJL9L5umS5M28X3l-0-b5e8e20537d920ddd941a3494f986362)