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:

验证Kube-Proxy模式:

     # curl 127.0.0.1:10249/proxyMode
     ipvs
2.污点方面

Kubeadm安装后,会自动添加NoSchedule的污点,所以Master节点默认不允许部署非系统Pod,可以通过删除污点的方式允许部署。首先查看污点:

然后删除污点(生产环境最好不要在Master节点部署其他Pod):