当删除 kube-dns deployment,要怎么恢复

2021.5.28

……我把 kube-dns 的 deployment 删除了
本来找不到 kube-dns 相关的 yaml 文件,想着直接重装 k8s,但是想想以后总不能一有什么问题就重装系统吧!

(1)从 https://github.com/kubernetes/kubernetes/releases/tag/v1.16.0 中下载了源码(因为版本是 1.16.0)

(2)修改 /Users/goven/Downloads/kubernetes-1.16.0/clust er/addons/dns/kube-dns 下的文件 kube-dns.yaml.base,修改其中的一下变量(参考以下两个连接:https://www.cnblogs.com/cmt/p/12061089.html、https://www.cnblogs.com/shanhua-fu/p/10981352.html):

__DNS__MEMORY__LIMIT__:170Mi
__PILLAR__DNS__SERVER__:10.1.0.10(dns service 的 cluster IP)
__PILLAR__DNS__DOMAIN__:cluster.local
容器的镜像替代为:
k8s.gcr.io/k8s-dns-kube-dns:1.14.13:registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-kube-dns-amd64:1.14.13
k8s.gcr.io/k8s-dns-dnsmasq-nanny:1.14.13:registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.13
k8s.gcr.io/k8s-dns-sidecar:1.14.13:registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-sidecar-amd64:1.14.13

(3)执行以下命令:


image.png

最终 pod kube-dns 运行起来了:


image.png

(4)验证 kube-dns 是否起作用(参考https://www.cnblogs.com/netonline/archive/2018/04/16/8858809.html):

# 创建 pod

apiVersion: v1
kind: Pod
metadata:
  name: test-po
  namespace: default
spec:
  containers:
  - name: test-po
    image: busybox
    command:
    - top

进入 pod,查看其 /etc/resolv.conf 中是否存在 dns svc 的 cluster IP:


image.png

image.png

问题

  • 删除 kube-dns deployment 之前,集群中有两个 kube-dns pod,分别运行在集群中的每个节点上,但是自己重新拉起来的时候,之后在一个节点上(另一个节点是 master)运行 kube-dns pod。不知道后续是否有影响。
  • 删除 kube-dns deployment 之前,集群中的 kube-dns pod 中只有一个 container(出了 /pause 容器外),但是自己重新拉起来后,一个 pod 中有3个容器(见 yaml 文件以及如下图),不知道原先的 yaml 文件是怎么定义的。


    image.png

    [PS]希望了解的可以分享~

你可能感兴趣的:(当删除 kube-dns deployment,要怎么恢复)