Systemd配置问题

问题 用 kubeadm 部署 kubernetes 集群,启动kubelet服务后,kubelet daemon 会认为 /etc/sysconfig/kubelet内容的优先级更高, 覆盖KUBELET_EXTRA_ARGS环境变量--pod-infra-container-image的配置内容。 分析 kubelet.service文件 首先查看/etc/systemd/system/kubelet.service文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 # cat /etc/systemd/system/kubelet.service [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=https://kubernetes.io/docs/ [Service] ExecStart=/usr/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target 注意第5行的ExecStart指令为/usr/bin/kubelet kubelet.service.d 目录 然后查看kubelet服务的配置目录/etc/systemd/system/kubelet.service.d/,注意 kubeadm会在这里创建一个10-kubeadm.conf文件来配置kubelet启动方式(参数)。 1 2 3 4 5 6 7 8 9 10 11 12 13 # cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf # Note: This dropin only works with kubeadm and kubelet v1.11+ [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file. EnvironmentFile=-/etc/sysconfig/kubelet ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS 配置文件的load的顺序是以字母顺序排列的, 如果我们也在这里创建了kubelet的配置文件,比如20-my-kubelet.conf,10-*会先被读取,20-*其次。 ...

May 11, 2019 · datewu