当删除 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.htmlhttps://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]希望了解的可以分享~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容