Kubic:kubeadm
什么是 kubeadm?
kubeadm 是 Kubernetes 上游项目提供的用于创建和升级 Kubernetes 集群的工具包
什么是 Kubernetes?
Kubernetes 是一个开源系统,用于自动化容器化应用程序的部署、扩展和管理。它将构成应用程序的容器分组为逻辑单元,以便于管理和发现。Kubernetes 然后为服务提供自愈、高可用性和负载均衡等功能,即使在发生故障时也能确保服务持续运行。Kubernetes 建立在 Google 15 年的生产工作负载运行经验之上,并结合了社区中最佳的理念和实践。
简单来说,如果您想以协调的方式在多台服务器上运行容器,您可能需要使用 Kubernetes。
如果您只需要在单台服务器上运行容器,我们建议使用 MicroOS,它提供 Podman/CRI-O 和 Docker 容器运行时,用于在独立系统上运行容器。
入门
请注意:Kubic 上的 kubeadm 正在积极开发中。我们正在尽最大努力保持本指南的最新状态,但如果您发现任何异常,请与我们联系或随时自行更正。
系统安装
首先,您需要下载 Kubic 的最新安装介质(x86_64 或 AArch64)。任何 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 与之兼容。






