为什么kubernetes需要有2个coredns pod

时间:2020-03-04 09:08:07

标签: kubernetes coredns

我安装了新的kubernetes单节点集群,并且看到2个coredns pod正在运行。其中之一失败了(不是这个问题的一部分)

为什么是2个?

2 个答案:

答案 0 :(得分:3)

link上有关CoreDNS的详细调整信息。

CoreDNS内存使用主要受群集中Pod和服务数量的影响。其他因素包括填充的DNS答案缓存的大小以及每个CoreDNS实例的查询接收率(QPS)。

两个副本用于实现高可用性(减少CoreDNS停机的风险)和安装时的默认值。

您可以通过在部署上按比例缩小/扩大coredns的部署来更改此设置。

默认

$ kubectl describe deployment.apps -n kube-system coredns
Name:                   coredns
Namespace:              kube-system
CreationTimestamp:      Tue, 03 Mar 2020 09:28:50 +0000
Labels:                 k8s-app=kube-dns
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               k8s-app=kube-dns
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 25% max surge

缩小到1

$ kubectl scale deployments.apps -n kube-system coredns --replicas=1
deployment.apps/coredns scaled

$ kubectl describe deployment.apps -n kube-system coredns
Name:                   coredns
Namespace:              kube-system
CreationTimestamp:      Tue, 03 Mar 2020 09:28:50 +0000
Labels:                 k8s-app=kube-dns
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               k8s-app=kube-dns
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable

扩展到3

$ kubectl scale deployments.apps -n kube-system coredns --replicas=3
deployment.apps/coredns scaled

$ kubectl describe deployment.apps -n kube-system coredns
Name:                   coredns
Namespace:              kube-system
CreationTimestamp:      Tue, 03 Mar 2020 09:28:50 +0000
Labels:                 k8s-app=kube-dns
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               k8s-app=kube-dns
Replicas:               3 desired | 3 updated | 3 total | 2 available | 1 unavailable

答案 1 :(得分:0)

存在两个Pod,以实现弹性。

您始终可以通过在kube-system中编辑部署来配置副本数