集群内部DNS调试

编辑部署一个包含网络调试工具的yaml文件:

yaml 复制代码
# Source: net-tools.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: net-tools
  labels:
    k8s-app: net-tools
spec:
  selector:
    matchLabels:
      k8s-app: net-tools
  template:
    metadata:
      labels:
        k8s-app: net-tools
    spec:
      tolerations:
        - effect: NoSchedule
          operator: Exists
        - key: CriticalAddonsOnly
          operator: Exists
        - effect: NoExecute
          operator: Exists
      containers:
        - name: net-tools
          image: juestnow/net-tools
          command:
            - /bin/sh
            - "-c"
            - set -e -x; tail -f /dev/null
          resources:
            limits:
              memory: 30Mi
            requests:
              cpu: 50m
              memory: 20Mi
      dnsConfig:
        options:
          - name: single-request-reopen

创建Pod

shell 复制代码
kubectl apply -f net-tools.yaml

进入Pod调试:

shell 复制代码
kubectl exec -it net-tools-gzn9z /bin/sh

进行DNS调试:

shell 复制代码
ping jaeger-collector.istio-system.svc.cluster.local
ping: bad address 'bing.com'

集群DNS用例: 直接编辑

shell 复制代码
kubectl edit cm coredns -n kube-system

or 导出后修改

shell 复制代码
kubectl get cm coredns -n kube-system -o > coredns.yaml

改成如下内容:

yaml 复制代码
apiVersion: v1
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system
  labels:
    addonmanager.kubernetes.io/mode: EnsureExists
data:
  Corefile: |
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods verified
            endpoint_pod_names
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        prometheus :9153
        forward .  223.5.5.5:53 114.114.114.114:53 119.29.29.29:53 {
            max_concurrent 1000
        }
        cache 30
        reload 6s
        loadbalance
    }  

删除coredns pod以达到重启DNS目的, 删除完成之后等待重建Pod

shell 复制代码
kubectl delete cm/coredns-xx -n kube-system

之后喝杯Java, 等待几分钟, 最后进入net-tool进行测试DNS

资料

  1. kubernetes.io/docs/tasks/...
相关推荐
孔令飞8 分钟前
22 | 如何继续提升 Go 开发技术?
人工智能·ai·云原生·golang·kubernetes
小诸葛的博客6 小时前
bookie重启后报错
kubernetes
rider18910 小时前
【9】搭建k8s集群系列(二进制部署)之安装work-node节点组件(kube-proxy)和网络组件calico
java·容器·kubernetes
Connie145119 小时前
在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别
云原生·容器·kubernetes
会游泳的石头1 天前
探索现代网络技术:从负载均衡到 Kubernetes
运维·kubernetes·负载均衡
千羽星弦1 天前
Kubernetes 集群搭建(一):k8s 从环境准备到 Calico 网络插件部署(1.16版本)
网络·容器·kubernetes
kfhj1 天前
负载均衡是什么,Kubernetes如何自动实现负载均衡
运维·kubernetes·负载均衡
晓风残月淡2 天前
Kubernetes详细教程(一):入门、架构及基本概念
容器·架构·kubernetes
可观测性用观测云2 天前
Kube Scheduler 可观测性最佳实践
kubernetes
可乐加.糖2 天前
腾讯云K8s容器部署SpringBoot项目实现方案
java·spring boot·容器·kubernetes·k8s·腾讯云