集群内部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/...
相关推荐
南宫乘风1 天前
Kubernetes 本地存储实战:Open-Local 从部署到生产级应用
云原生·容器·kubernetes
eddy-原1 天前
ELKStack 与 Kubernetes 核心基础知识点综合作业
云原生·容器·kubernetes
ygqygq21 天前
Kubernetes Gateway API 与 Envoy Gateway 部署使用指南
kubernetes·gateway·envoy·ingress
Code知行合壹1 天前
Kubernetes微服务DevOps
微服务·kubernetes·devops
怪我冷i1 天前
win11使用minikube搭建K8S集群基于podman desktop( Fedora Linux 43)
linux·kubernetes·ai编程·ai写作·podman
victory04311 天前
K8S 从Harbor当中拉取镜像 连接方法
云原生·容器·kubernetes
陈陈CHENCHEN1 天前
【Kubernetes】K8s 1.35 配置 Docker 作为容器运行时
docker·kubernetes
勇气要爆发1 天前
Kubernetes (K8S):云时代的“超级舵手”
云原生·容器·kubernetes
大新新大浩浩1 天前
ubuntu2204 + k8s 1.32.5 +GPU-Operator 24.9.2搭建GPU-k8s平台
云原生·容器·kubernetes
懒鸟一枚2 天前
k8s 之minikube安装看k8s
云原生·容器·kubernetes