前因:一套很久前搭建的k8s,版本1.18.18。 测试部署prometheus,发现带有svc的都无法访问

解决过程:
1.查看coredns服务,没发现异常

2.创建测试pod -- busybox
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "4"
  labels:
    app: mytest 
  name: mytest
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mytest
  template:
    metadata:
      labels:
        app: mytest
    spec:
      containers:
      - args:
        - /bin/sh
        - -c
        - sleep 300000
        image: busybox:1.28.3
        imagePullPolicy: Always
        name: busybox
3.进去容器测试域名解析
发现无法解析,但是能ping通clusterip和pod ip
kubectl exec -it mytesta-86bb8bc746-cpp2f

 
4.发现pod里解析ip 与coredns svc clusterip不一样

 
尝试把pod里nameserver改成10.68.0.2,发现解析成功。

5.直接修改pod无法持久, 尝试修改kubelet服务的dns地址信息

改成10.68.0.2。 重启kubelet
systemctl restart kubelet
重启busybox pod,进入容器测试。发现resolv.conf 变成coredns svc clusterip,且能正常解析

再次查看prometheus监控情况,已经可以正常监控
