2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
因此,我们从头构建了一个控制平面。这虽然有一定用处,但实现起来也颇具挑战?然而,我们真正想要构建的是一个能够实际运行容器化应用程序的、功能完备的多节点集群。控制平面本身只是“大脑”;我们需要“肌肉”(即工作节点)来执行实际的工作负载。
在设置控制节点时,配置控制平面要求我们逐行手动配置种子虚拟机的每一个细节。虽然这对于理解各个组件至关重要,但如果尝试对 10 个、50 个或 100 个工作节点重复这些步骤,很快就会变成一场噩梦。本系列文章的这一部分旨在通过基于预配置机器创建“黄金镜像”来实现流程的可扩展性,从而使我们能够快速部署相同的工作节点,并将其高效地加入到现有集群中。
创建黄金镜像
这里的核心原则是停止进行重复的手动配置。在设置控制节点时,我们已经花费时间将操作系统调整到最佳状态。还记得那些步骤吗?我们加载了 overlay 和 br_netfilter 内核模块,调整了 iptables 的网络桥接设置,并且关键的是,完全禁用了交换空间,因为否则 Kubelet 将无法运行。我们还安装了 containerd 并将其配置为使用 systemd 作为 cgroup 驱动程序。
这一整套先决条件、操作系统配置以及必要的 Kubernetes 二进制文件(kubeadm、kubelet、kubectl)现在都已完美地集成到我们的 k8s-seed 虚拟机中。黄金镜像 simply 是该完美设置的冻结且随时可用的快照。我们无需在每个新节点上重复这些步骤,而是使用此镜像作为模板,快速启动任意数量的相同工作节点。这将我们从基于手动配置的流程转变为基于镜像的自动化部署流程,这是迈向真正的云原生基础设施的基础步骤。
第一步:泛化种子实例
在将 k8s-seed 虚拟机用作模板之前,我们需要对其进行“封装”。每台运行中的 Linux 机器都有唯一的标识符——机器 ID 和特定的网络日志。如果我们在多个节点间复制这些标识符,Kubernetes 控制平面将会混淆,因为它会看到多个具有相同身份的机器。我们需要清除这些唯一细节,以便当新虚拟机从镜像启动时,能够生成其自身全新的身份和网络配置。
- 通过 SSH 连接到种子机器:
gcloud compute ssh k8s-seed --zone=us-central1-a
2. 清理唯一标识符: 运行以下命令以移除机器 ID 并重置 cloud-init 日志。这确保了当新虚拟机从此镜像启动时,它们会生成自己全新的身份。
sudo cloud-init clean --seed --logs --machine-id
exit
3. 停止实例: 回到本地机器,停止虚拟机,以便我们可以对其磁盘进行快照。
gcloud compute instances stop k8s-seed --zone=us-central1-a
第二步:创建自定义镜像
在种子机器准备就绪并停止后,我们现在从该磁盘创建一个 Google Compute Engine 镜像。此镜像 k8s-node-image-v1 将服
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。