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_64AArch64)。20190606 之后的任何版本都应该可以工作。

对于在裸机上安装,请将此介质刻录到 DVD 或 USB 存储器,然后从它启动您的第一个系统。对于虚拟机或 VPS 提供商,只需直接启动 ISO 即可。这个第一个系统将是我们称为 Admin Node 的机器,它将运行核心 Kubernetes 服务,但不会运行任何容器化应用程序。这些将由额外的机器完成,这些机器被称为 Worker Nodes

在选择您的语言并同意我们的许可协议后,您将看到“系统角色”屏幕。选择 Kubic Admin Node。即使它仅标记为 Alpha,它也应该可以很好地工作。

按照配置 NTP、设置 root 密码和可选 ssh 密钥的后续步骤,如果您希望可以自定义网络和其他选项,然后再开始安装。我们建议保留默认设置,除非您知道自己在做什么。安装将继续,并在重新启动后您将获得登录提示。

设置 Kubernetes 主节点

使用安装过程中设置的 root 密码登录或通过 ssh 远程登录。

现在运行 kubicctl init

确保基本配置文件 kubicd.confrdac.conf 存在于目录 /etc/kubicd 中。如果不存在,由于身份验证错误,Kubernetes 的初始化将失败。您可以从 https://github.com/thkukuk/kubic-control 下载示例配置文件。

Weave 被用作默认的 POD 网络。

经过短暂的时间,您的主节点现在应该已初始化。此外,事务更新已配置,并且 kured 用于在成功更新后重新启动节点。

为了能够与集群通信,创建目录 mkdir ~/.kubekubicctl 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]