我现在正在探索如何使用3个主节点和3个工作节点创建HA kubernetes集群。我正在关注以下文档,
https://kubernetes.io/docs/setup/independent/high-availability/
在这里,我正在遵循文档中的第二个选项。即,在主节点上托管etcd集群。所以根据文档我开始步骤 - “在master0上运行kubeadm init”。意味着我在主节点上托管etcd集群。当我引用我需要创建的配置文件时,我对配置文件中的某些术语感到困惑。为清楚起见,我在这里添加配置文件
cat >config.yaml <<EOF
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: <private-ip>
etcd:
endpoints:
- https://<etcd0-ip-address>:2379
- https://<etcd1-ip-address>:2379
- https://<etcd2-ip-address>:2379
caFile: /etc/kubernetes/pki/etcd/ca.pem
certFile: /etc/kubernetes/pki/etcd/client.pem
keyFile: /etc/kubernetes/pki/etcd/client-key.pem
networking:
podSubnet: <podCIDR>
apiServerCertSANs:
- <load-balancer-ip>
apiServerExtraArgs:
apiserver-count: "3"
EOF
质疑
答案 0 :(得分:3)
我想扩展Jonah Benton的答案,简要介绍它是如何运作的。
Kubernetes集群由三种主要类型的组件组成。 已安装的组件为节点创建角色。该节点是集群的虚拟或物理机器 服务正在运行。组件可以逻辑地位于单独的节点上或安装在一个节点上,如在minikube中。
Kubernetes主节点需要运行API服务器,Controller Manager,Scheduler等守护进程。 在使用这些软件组件时,主节点正在管理容器引擎,iptables,kubelet所在的工作节点 和服务代理正在运行。
Etcd是用于HA,负载平衡和运行状况检查的运行集群状态的组件 节点的保存。建议在集群的1,3或5个节点上运行etcd,以实现集群的可靠性和复制 条件。安装了etcd作为附加组件的worker节点是一种流行的安装方法。
我们只能在运行API服务器的节点上调用真正的主节点。
让我们查看您提供的配置文件:
etcd:
endpoints:
- https://<etcd0-ip-address>:2379
- https://<etcd1-ip-address>:2379
- https://<etcd2-ip-address>:2379
关于你的问题,答案是肯定的。这是保留用于定义etcd守护程序的端点的位置。如果你有计划 要使主节点运行etcd的高可用性集群,您可以用主节点IP地址替换这些条目。
我在document中找到了很好描述的Kubernetes组件。它可能有助于理解Kubernetes Cluster的依赖性。