Kubic:kubeadm

跳转到:导航搜索

什么是 kubeadm?

kubeadm 是 Kubernetes 上游项目提供的用于创建和升级 Kubernetes 集群的工具包

什么是 Kubernetes?

Kubernetes 是一个开源系统,用于自动化容器化应用程序的部署、扩展和管理。它将构成应用程序的容器分组为逻辑单元,以便于管理和发现。Kubernetes 然后为服务提供自愈、高可用性和负载均衡等功能,即使在发生故障时也能确保服务持续运行。Kubernetes 建立在 Google 15 年的生产工作负载运行经验之上,并结合了社区中最佳的理念和实践。

简单来说,如果您想以协调的方式在多台服务器上运行容器,您可能需要使用 Kubernetes。

如果您只需要在单台服务器上运行容器,我们建议使用 MicroOS,它提供 Podman/CRI-O 和 Docker 容器运行时,用于在独立系统上运行容器。

入门

请注意:Kubic 上的 kubeadm 正在积极开发中。我们正在尽最大努力保持本指南的最新状态,但如果您发现任何异常,请与我们联系或随时自行更正。

系统安装

首先,您需要下载 Kubic 的最新安装介质(x86_64AArch64)。任何 20180815 之后的版本都应该可以工作。注意:官方虚拟机镜像也可提供

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

在选择您的语言并同意我们的许可协议后,您将看到以下“系统角色”屏幕。选择 kubeadm Node

按照下一步设置 root 密码,如果您愿意,可以在开始安装之前自定义网络和其他选项。我们建议保留默认设置,除非您知道自己在做什么。然后安装将继续,您将最终看到以下登录提示。

设置 Kubernetes master

使用安装过程中设置的 root 密码登录。我们建议使用 ssh 远程登录到机器,因为它可能会简化以后在机器之间复制和粘贴所需的步骤。

现在运行 kubeadm init

注意:如果希望使用 flannel 网络接口(又名 CNI),则需要添加 --pod-network-cidr=10.244.0.0/16 参数。如果您想使用 Cilium 或我们推荐的 Weave 网络插件,则不需要该参数。

经过短暂的时间后,您的 Master 应该已经初始化完成。

记下/复制以 kubeadm join 开头的行。您需要它来将 Nodes 加入您的集群。

如成功消息中提到的,通过运行 mkdir -p ~/.kube,然后 cp -i /etc/kubernetes/admin.conf ~/.kube/config 配置 root 用户以能够与集群通信

设置网络插件

下一步是设置网络插件。有三个经过在 Kubic 上测试的插件可供选择。现在,您只能选择其中一个。Weave 是我们推荐的大多数基本用例。

Weave

Weave 提供简单、有弹性的多宿主容器网络。

通过运行 kubectl apply -f /usr/share/k8s-yaml/weave/weave.yaml 设置 weave

Flannel

警告:flannel 曾经是我们的推荐 CNI 插件,但现在被认为是不稳定的。本文档仅供参考。

Flannel 是一个简单的网络提供程序。它功能较少,不提供 网络策略,但它一直受 Kubic 支持。

您可以通过运行 kubectl apply -f /usr/share/k8s-yaml/flannel/kube-flannel.yaml 设置 flannel

如果您在运行 kubectl describe nodes 时看到 runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: Missing CNI default network,您可能需要在应用此更改后重新启动 master。

将节点加入集群

现在您的 master 已完全设置并准备好让其他节点加入。您以与 Master 相同的方式安装它们,选择 kubeadm Node 角色,就像之前一样。

但是,与在您的 master 上不同,您通过粘贴 Master 上 kubeadm init 运行结束时显示的行来运行 kubeadm join 命令。

运行时间不长,您应该收到以下确认消息,表明您的节点已加入集群。

验证集群

现在从您的 master 节点(或安装了 kubectl 并且将 master 的 /etc/kubernetes/admin.config 文件复制到用户 $HOME/.kube/config 文件的任何系统)运行 kubectl get nodes 以确认您的集群正在运行。

恭喜!您现在拥有一个可用的 Kubernetes 集群。

单 Master 操作

您可能希望将 Kubernetes 作为单 master 进行实验。为此,您需要取消 taint master 以允许将 pod 调度到 master 上。

kubectl taint nodes --all node-role.kubernetes.io/master-

进一步的文档

有关进一步的文档,我们强烈建议您阅读 上游 kubeadm 文档,我们力求 Kubic 与之兼容。