kubelet 修改默认使用的dns配置文件
coredns服务默认使用节点上的dns配置,由于在Ubuntu18及以上版本,默认是启用systemd-resolved服务的,且配置nameserver配置文件默认为 /run/systemd/resolve/resolv.conf , 且kubelet默认的dns文件读取也是该文件。因不习惯使用该服务来管理dns配置,所以需要修改kubelet的默认读取dns的文件路径的配置。
查看服务状态
systemctl status systemd-resolved.service
修改kubelet配置,在/var/lib/kubelet/config.yaml文件中加入resolvConf: /etc/resolv.conf
# cat /var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:anonymous:enabled: falsewebhook:cacheTTL: 0senabled: truex509:clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:mode: Webhookwebhook:cacheAuthorizedTTL: 0scacheUnauthorizedTTL: 0s
cgroupDriver: systemd
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
logging: {}
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
resolvConf: /etc/resolv.conf #dns文件读取路径
rotateCertificates: true
runtimeRequestTimeout: 0s
shutdownGracePeriod: 0s
shutdownGracePeriodCriticalPods: 0s
staticPodPath: /etc/kubernetes/manifests
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
volumeStatsAggPeriod: 0s
# 重启kubelet服务
# systemctl restart kubelet
如果想在后续加入新节点时,将该配置文件的默认配置更改,可以在configmap中更改
# configmap后跟着的版本号,修改你最新的版本的号的configmap就行。
kubectl edit cm kubelet-config-1.21 -n kube-system