更改Kubernetes的默认行为

时间:2018-09-17 16:23:42

标签: configuration kubernetes

我在笔记本电脑上使用Kubeadm设置了一个K8S集群(1个主设备和2个从设备)。

  • 部署了一个Pod的6个副本。其中有3个部署到每个奴隶。
  • 关闭了一个从站。
  • 在运行的节点上安排了3个Pod,大约花了6分钟。

最初,我认为它必须与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)

有人可以指出需要做些什么才能使上述配置更改永久生效,以及相同的不同选项?

1 个答案:

答案 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

您应该使新的配置生效。

希望有帮助。