kubernetes - kubectl获取componentStatus显示额外的etcd实例

标签 kubernetes kubectl coreos etcd

我有一个正在运行的单节点kubernetes集群。一切正常,但是当我运行“kubectl get cs”(kubectl get componentstatus)时,它显示了etcd的两个实例。我已经运行了一个etcd实例。
[root@master01 vagrant]# kubectl get cs NAME STATUS MESSAGE ERROR controller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {"health": "true"} etcd-1 Healthy {"health": "true"}[root@master01 vagrant]# etcdctl member list 19ef3eced66f4ae3: name=master01 peerURLs=http://10.0.0.10:2380 clientURLs=http://0.0.0.0:2379 isLeader=true[root@master01 vagrant]# etcdctl cluster-health member 19ef3eced66f4ae3 is healthy: got healthy result from http://0.0.0.0:2379 cluster is healthy
Etcd作为docker容器运行。在/etc/systemd/system/etcd.service文件中,提到了单个etcd集群。(http://10.0.0.10:2380)
/usr/local/bin/etcd \ --name master01 \ --data-dir /etcd-data \ --listen-client-urls http://0.0.0.0:2379 \ --advertise-client-urls http://0.0.0.0:2379 \ --listen-peer-urls http://0.0.0.0:2380 \ --initial-advertise-peer-urls http://10.0.0.10:2380 \ --initial-cluster master01=http://10.0.0.10:2380 \ --initial-cluster-token my-token \ --initial-cluster-state new \
同样在api服务器配置文件中,使用/etc/kubernetes/manifests/api-srv.yaml --etcd-servers标志。
- --etcd-servers=http://10.0.0.10:2379,[root@master01 manifests]# netstat -ntulp |grep etcd tcp6 0 0 :::2379 :::* LISTEN 31109/etcd tcp6 0 0 :::2380 :::* LISTEN 31109/etcd
任何人都知道为什么它在“kubectl get cs”中显示etcd-0和etcd-1吗?任何帮助表示赞赏。

最佳答案

尽管@Jyothish Kumar S自己找到了根本原因并解决了该问题-这是一个好习惯,要为将来会遇到相同问题的人们提供一个答案。

问题来自API服务器配置文件/etc/kubernetes/manifests/api-srv.yaml中的配置错误,其中--etcd-servers设置不当。
可以在here中找到kube-apiserver的所有标志及其描述。
因此,问题出在--etcd-servers=http://10.0.0.10:2379,行的最后一个逗号中。该逗号被解释为新的ETCD服务器记录http://:::2379,这就是为什么在"kubectl get cs"输出中我们能够看到两个etcd记录而不是一个的原因。
配置etcd时请注意此方面。

关于kubernetes - kubectl获取componentStatus显示额外的etcd实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51595224/

相关文章:

ubuntu - 如何从外部访问规范的 kubernetes 仪表板?

python - 我可以在 kubernetes python 客户端中使用正则表达式作为作业名称吗?

docker - 如何在不使用Docker Hub的情况下将应用程序部署到容器OS?

kubernetes - OKD 3.11安装失败 “Control plane pods didn'出现” “network plugin is not ready: cni config uninitialized”

azure - 在哪里可以查看 azure "expires"中的 k8s 版本的日期(不可升级)?

azure - 引用 AKS 的 Ingress 使用的来自 Azure Key Vault 的 TLS 证书

amazon-web-services - KOPS如何在AWS中重新创建主节点?

kubernetes - 无法连接到从稳定/postgresql Helm chart 安装的postgres statefulset数据库

bash - 如何检查我的本地 docker 镜像是否已过时,而无需从其他地方推送?

java - Maven 在 Docker 容器内下载时挂起