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)执行以下命令:
最终 pod kube-dns 运行起来了:
(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:
问题
- 删除 kube-dns deployment 之前,集群中有两个 kube-dns pod,分别运行在集群中的每个节点上,但是自己重新拉起来的时候,之后在一个节点上(另一个节点是 master)运行 kube-dns pod。不知道后续是否有影响。
-
删除 kube-dns deployment 之前,集群中的 kube-dns pod 中只有一个 container(出了 /pause 容器外),但是自己重新拉起来后,一个 pod 中有3个容器(见 yaml 文件以及如下图),不知道原先的 yaml 文件是怎么定义的。
[PS]希望了解的可以分享~