在一些場景下,您的kube.NETes集群已經搭建完成了,但是還需要修改一些核心組件的參數,如etcd、kube-apiserver、kube-scheduler、kube-controller-manager等。
通過kubectl get pod -owide -n kube-system 可以查看到這些核心容器。
NAME READY STATUS RESTARTS AGE
coreDNS-78fcd69978-rdmjm 1/1 Running 11 (23s ago) 281d
etcd-$NODE1 1/1 Running 13 (23s ago) 281d
etcd-$NODE2 1/1 Running 13 (23s ago) 281d
etcd-$NODE3 1/1 Running 13 (23s ago) 281d
.....
以etcd為例,etcd的參數就在pod中的commands參數里。可以通過kubectl describe pod etcd-$NODENAME -n kube-system來查看(省略部分參數)
Name: etcd-$NODENAME
Namespace: kube-system
Containers:
etcd:
Command:
--client-cert-auth=true
--trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
然而,如果您嘗試編輯pod中的參數,會發現它們是不可修改的。
不過,如果您需要修改參數,還有另一個辦法,通過修改
/etc/kubernetes/manifests/下的yaml文件來修改運行中kubernetes集群中"系統"Pod的參數。原理是,當您把yaml文件修改后,kubelet會自動監聽yaml文件的變更,并重新拉起本機器上的pod。
舉個例子,如果您希望關閉etcd集群對客戶端的認證,那么您可以修改
/etc/kubernetes/mainfiest/etcd.yaml,將client-cert-auth設置為false,把--trusted-ca-file去掉。注意:三臺master機器節點都需要執行此操作






