前因:一套很久前搭建的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
View Code

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监控情况,已经可以正常监控