Kubic:KubicD 和 kubicctl
KubicD/kubicctl 是什么?
kubicd 是一个基于 gRPC 的守护进程,使用 mutualTLS 和 RBAC 进行通信,并使用 salt 与 kubeadm 配合在 openSUSE Kubic 上设置和管理 Kubernetes 集群。身份验证通过证书完成。kubicctl 是相应的命令行界面。
什么是 Kubernetes?
Kubernetes 是一个开源系统,用于自动化容器化应用程序的部署、扩展和管理。它将构成应用程序的容器分组为逻辑单元,以便于管理和发现。Kubernetes 通过采取措施确保服务即使在发生故障时也能持续运行,从而为服务提供自愈、高可用性和负载均衡等功能。Kubernetes 建立在 Google 15 年的生产工作负载运行经验之上,并结合了社区中最佳的理念和实践。
简单来说,如果您想以协调的方式在多台服务器上运行容器,您可能需要使用 Kubernetes。
如果您只需要在一台服务器上运行容器,我们建议使用 MicroOS,它提供 Podman/CRI-O 和 Docker 容器运行时,用于在独立系统上运行容器。
入门
请注意:openSUSE Kubic 上的整个 Kubernetes 和工具链正在积极开发中。
要求
Kubernetes 本身的主要通用要求
- 集群中的所有节点必须位于同一网络中,并且能够直接相互通信。
- 集群中的所有节点必须分配静态 IP 地址。使用动态分配的 IP 如果 IP 地址发生更改,将破坏集群功能。
- Kubernetes 主节点必须具有有效的完全限定域名 (FQDN),这些域名可以被所有其他节点以及需要访问集群的其他网络解析。
- 由于 Kubernetes 主要使用证书和令牌,因此所有节点上的时间需要始终同步。否则,集群内部的通信将中断。
系统安装
首先,您需要下载 Kubic 的最新安装介质(x86_64 或 AArch64)。20190606 之后的任何版本都应该可以工作。
对于在裸机上安装,请将此介质刻录到 DVD 或 USB 存储器,然后从它启动您的第一个系统。对于虚拟机或 VPS 提供商,只需直接启动 ISO 即可。这个第一个系统将是我们称为 Admin Node 的机器,它将运行核心 Kubernetes 服务,但不会运行任何容器化应用程序。这些将由额外的机器完成,这些机器被称为 Worker Nodes。
在选择您的语言并同意我们的许可协议后,您将看到“系统角色”屏幕。选择 Kubic Admin Node。即使它仅标记为 Alpha,它也应该可以很好地工作。
按照配置 NTP、设置 root 密码和可选 ssh 密钥的后续步骤,如果您希望可以自定义网络和其他选项,然后再开始安装。我们建议保留默认设置,除非您知道自己在做什么。安装将继续,并在重新启动后您将获得登录提示。
设置 Kubernetes 主节点
使用安装过程中设置的 root 密码登录或通过 ssh 远程登录。
现在运行 kubicctl init
确保基本配置文件 kubicd.conf 和 rdac.conf 存在于目录 /etc/kubicd 中。如果不存在,由于身份验证错误,Kubernetes 的初始化将失败。您可以从 https://github.com/thkukuk/kubic-control 下载示例配置文件。
Weave 被用作默认的 POD 网络。
经过短暂的时间,您的主节点现在应该已初始化。此外,事务更新已配置,并且 kured 用于在成功更新后重新启动节点。
为了能够与集群通信,创建目录 mkdir ~/.kube 并 kubicctl kubeconfig > ~/.kube/config
将节点加入集群
现在这意味着您的管理节点已完全设置好,并准备好让其他节点加入。要安装工作节点,您必须选择另一个系统角色:Kubic Worker Node。安装过程中的其他操作与之前一样。
但是,在您能够与管理节点通信之前,您需要配置并启动 salt minion。创建一个配置文件,告诉 salt 我们的管理节点名称:echo "master: <admin-hostname>" > /etc/salt/minion.d/master.conf 并启用它:systemctl enable --now salt-minion.service
现在在管理节点上接受 salt minion。首先列出所有密钥 (salt-key -L) 并接受它们 (salt-key -A)。
之后,您可以加入节点:kubicctl node add node1,node2,...。节点名称需要是 salt minions 的名称,格式与您接受的一致。
验证集群
现在从您的主节点(或安装了 kubectl 并且将主节点的 /etc/kubernetes/admin.config 文件复制到用户 $HOME/.kube/config 文件的任何系统)运行 kubectl get nodes 以确认您的集群正在运行。
恭喜! 您现在拥有一个可用的 Kubernetes 集群。
进一步的文档
有关进一步的文档,我们强烈建议您阅读 [1]。