要确认kubelet的–cluster-dns和–cluster-domain参数是否正确设置,可以按照以下步骤进行操作:
- 使用kubectl get svc -n kube-system命令获取CoreDNS Service的Cluster IP地址。输出结果中应该会有一行类似于下面的内容:
coredns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP kubernetes kube-dns
其中,10.96.0.10就是CoreDNS Service的Cluster IP地址。
- 使用kubectl get configmap -n kube-system coredns命令获取CoreDNS ConfigMap的内容。输出结果中应该会有一行类似于下面的内容:
rewrite name regex (.*)\.kube\.local\.domain\., {1}.default.svc.cluster.local
其中,default.svc.cluster.local就是域名后缀。
- 登录到主节点,并使用cat /etc/kubernetes/kubelet.conf命令查看kubelet配置文件。在这个文件中,应该会有一些类似于下面的内容:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /etc/kubernetes/pki/ca.crt
server: https://192.168.100.10:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: system:node:<hostname>
name: default/<hostname>/kubernetes
current-context: default/<hostname>/kubernetes
kind: Config
preferences: {}
users:
- name: system:node:<hostname>
user:
client-certificate: /var/lib/kubelet/pki/kubelet.crt
client-key: /var/lib/kubelet/pki/kubelet.key
注意,在这个文件中,并没有–cluster-dns和–cluster-domain参数,而是使用了kube-proxy的配置。因此,需要查看kube-proxy的配置文件来确认这些参数是否正确设置。
- 使用cat /etc/kubernetes/kube-proxy.conf命令查看kube-proxy配置文件。在这个文件中,应该会有一些类似于下面的内容:
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
clientConnection:
kubeconfig: /var/lib/kube-proxy/kubeconfig.conf
mode: iptables
featureGates:
SupportIPVSProxyMode: true
metricsBindAddress: 127.0.0.1:10249
ipvs:
excludeCIDRs:
- 10.96.0.0/12
minSyncPeriod: 0s
scheduler: rr
strictARP: false
iptables:
masqueradeAll: false
masqueradeBit: null
minSyncPeriod: 0s
# Here is the config for the kube-dns service.
# If you remove this, kube-dns will not be functional.
# The mode should be "dns" instead of "proxy" if there is no network policy in the cluster.
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeDNSConfiguration
nameservers:
- IP_ADDRESS_1 # Replace with your DNS server IP address here.
- IP_ADDRESS_2 # Replace with your second DNS server IP address here (if available).
domains:
- domain.local # Replace with your local domain name here.
注意,在这个文件中,应该会有nameservers和domains字段。IP_ADDRESS_1和IP_ADDRESS_2就是Cluster DNS IP地址,而domain.local就是域名后缀。
通过以上步骤,可以确认kubelet的–cluster-dns和–cluster-domain参数是否正确设置。如果配置不正确,可以使用编辑器修改kubelet配置文件,并重启kubelet服务。




