首页 > 解决方案 > 为什么 kubernetes 需要有 2 个 coredns pod

问题描述

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

为什么他们是其中的2个?

标签: kubernetescoredns

解决方案


此链接上的 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

推荐阅读