我在笔记本电脑上使用Kubeadm设置了一个K8S集群(1个主设备和2个从设备)。
最初,我认为它必须与K8S设置有关。经过一番挖掘后发现,这是由于K here中提到的Controller Manager和Kubelet在K8S中的默认设置。有道理。我查看了有关在何处更改配置属性的K8S文档,还查看了群集节点上的配置文件,但无法弄清。
kubelet: node-status-update-frequency=4s (from 10s)
controller-manager: node-monitor-period=2s (from 5s)
controller-manager: node-monitor-grace-period=16s (from 40s)
controller-manager: pod-eviction-timeout=30s (from 5m)
有人可以指出需要做些什么才能使上述配置更改永久生效,以及相同的不同选项?
答案 0 :(得分:3)
在kubelet上,在所有节点上更改此文件:
/var/lib/kubelet/kubeadm-flags.env
在此行的末尾或任意位置添加选项:
KUBELET_KUBEADM_ARGS=--cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin
--cni-conf-dir=/etc/cni/net.d --network-plugin=cni
--resolv-conf=/run/systemd/resolve/resolv.conf
--node-status-update-frequency=10s <== add this
在您的kube-controller-manager上,在主服务器上更改以下文件:
/etc/kubernetes/manifests/kube-controller-manager.yaml
在本节中:
containers:
- command:
- kube-controller-manager
- --address=127.0.0.1
- --allocate-node-cidrs=true
- --cloud-provider=aws
- --cluster-cidr=192.168.0.0/16
- --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
- --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
- --controllers=*,bootstrapsigner,tokencleaner
- --kubeconfig=/etc/kubernetes/controller-manager.conf
- --leader-elect=true
- --node-cidr-mask-size=24
- --root-ca-file=/etc/kubernetes/pki/ca.crt
- --service-account-private-key-file=/etc/kubernetes/pki/sa.key
- --use-service-account-credentials=true
- –-node-monitor-period=5s <== add this line
在您的主人上执行sudo systemctl restart docker
在您所有的节点上执行sudo systemctl restart kubelet
您应该使新的配置生效。
希望有帮助。