kubernetes - 使用 config.yaml 创建多主 Kubernetes HA 集群
问题描述
我现在正在探索如何创建具有 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
怀疑
- 在这里,并且,我可以用我为主节点选择的机器的 IP 地址替换 etcd0-ip-address、etcd1-ip-address 和 etcd2-ip-address 吗?, 因为我没有在单独的虚拟机中形成 etcd。我选择在同一个主节点上创建。那么这里可以直接给3主VM的IP地址吗?
解决方案
我想扩展 Jonah Benton 的回答,它简要描述了它的工作原理。
Kubernetes 集群由三种主要类型的组件组成。安装的组件为节点创建角色。节点是运行集群服务的虚拟机或物理机。这些组件可以在逻辑上位于不同的节点上,也可以安装在一个节点上,就像在 minikube 中一样。
Kubernetes master 节点需要运行 API server、Controller Manager、Scheduler 等守护进程。在使用这些软件组件时,主节点正在管理运行容器引擎、iptables、kubelet 和服务代理的工作节点。
Etcd 是一个组件,用于保存运行集群的 HA、负载平衡和节点的健康检查的状态。建议在集群的 1 个、3 个或最多 5 个节点上运行 etcd,以实现集群条件的可靠性和复制。安装了 etcd 作为附加组件的工作节点是一种流行的安装方法。
我们只能在运行 API 服务器的节点上调用真正的主节点。
让我们看看您提供的配置文件:
etcd:
endpoints:
- https://<etcd0-ip-address>:2379
- https://<etcd1-ip-address>:2379
- https://<etcd2-ip-address>:2379
关于你的问题,答案是肯定的。这是为定义 etcd 守护进程的端点而保留的位置。如果您计划拥有一个主节点运行 etcd 的高可用性集群,您可以将这些条目替换为主节点 IP 地址。
我在本文档中找到了描述良好的 Kubernetes 组件。它可能有助于理解 Kubernetes Cluster 的依赖关系。
推荐阅读
- python - 如何加快每行的数据帧 std() 计算?
- javascript - Javascript 优化 - 从列表中查找 id 并将其映射到 Tree
- java - 创建名为“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”的bean时出错
- javascript - 如何重置 angular2 表单中定义的下拉列表的值?
- javascript - 使用 Canvas JS 在页面中渲染多个图表
- flutter - 如果用户尚未登录,如何显示登录页面,如果用户已登录,如何显示帐户页面
- c - lseek() 的偏移量和大块设备
- r - 到达时间间隔中绝对时间的 R 向量
- python - 列表匹配中大小写不同的计数问题
- windows - rtsp 到 youtube 流在 Windows 中不起作用