6 安装Kubernetes之使用Kubeadm安装
在上一篇文章中,我们介绍了如何使用 Minikube
快速搭建一个本地的 Kubernetes 集群。Minikube
适合用于开发和测试,但如果我们要在生产环境或更复杂的测试场景中运行 Kubernetes,则推荐使用 Kubeadm
安装 Kubernetes 集群。今天,我们将详细介绍如何使用 Kubeadm
安装 Kubernetes。
Kubeadm简介
Kubeadm
是 Kubernetes 官方提供的一种工具,用于快速创建和管理 Kubernetes 集群。它主要负责:
- 初始化控制平面节点
- 加入工作节点到集群
- 提供集群升级和修复等功能
环境准备
在开始之前,我们需要准备一些环境。以下是一个基本的环境清单:
- 至少两台服务器(或虚拟机),一台作为控制平面节点,另一台作为工作节点。
- 操作系统建议使用
Ubuntu 20.04+
、CentOS 7+
等。 - 需要具备
sudo
权限的用户。 - 安装 Docker 或其他容器运行时。
系统要求
确认你的系统符合以下要求:
- CPU:至少2个
- 内存:至少2GB
- Swap:禁用交换空间
可以通过以下命令禁用交换空间:
1 | sudo swapoff -a |
并确保在 /etc/fstab
文件中注释掉任何 swap 相关的行,以防重启后自动启用。
运行时环境
以下是安装 Docker 的步骤,以便后续用于 Kubernetes:
在 Ubuntu 上安装 Docker
1 | sudo apt-get update |
在 CentOS 上安装 Docker
1 | sudo yum install -y yum-utils |
安装Kubernetes组件
在所有节点上安装 Kubernetes 组件前,我们需要添加 Kubernetes 的官方仓库,并安装 kubeadm
, kubelet
和 kubectl
。
添加 Kubernetes 仓库
在 Ubuntu 上
1 | sudo apt-get update |
在 CentOS 上
1 | cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo |
安装组件
现在我们可以安装 Kubernetes 组件:
安装 kubeadm, kubelet 和 kubectl(Ubuntu)
1 | sudo apt-get install -y kubelet kubeadm kubectl |
安装 kubeadm, kubelet 和 kubectl(CentOS)
1 | sudo yum install -y kubelet kubeadm kubectl |
初始化Kubernetes集群
在控制平面节点上,使用 kubeadm
初始化 Kubernetes 集群。执行以下命令:
1 | sudo kubeadm init --pod-network-cidr=192.168.0.0/16 |
这里的 --pod-network-cidr
是指定的 Pod 网络范围,通常取决于你选择的网络插件(如 Calico、Weave 等)。在本例中,我们使用的是 Calico,它建议使用 192.168.0.0/16
。
配置kubectl
初始化完成后,执行以下命令以配置 kubectl
:
1 | # 复制 kubeconfig 文件 |
部署Pod网络
接下来,需要部署一个 Pod 网络插件。以下是安装 Calico 的步骤:
1 | kubectl apply -f https://docs.projectcalico.org/v3.25/manifests/calico.yaml |
加入工作节点
在工作节点上,你需要使用控制平面节点上显示的 kubeadm join
命令加入到集群。例如:
1 | sudo kubeadm join <control-plane-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> |
请替换 <control-plane-ip>
、<token>
和 <hash>
为你实际的控制平面的 IP 地址和命令行输出的值。
验证集群状态
在控制平面节点上,可以使用以下命令来查看节点状态:
1 | kubectl get nodes |
这应该会显示控制平面节点以及相应的工作节点。
小结
在本篇教程中,我们详细介绍了如何使用 Kubeadm
安装 Kubernetes 集群。与 Minikube
的使用相比,Kubeadm
更适合生产环境和多节点集群的需求。在下一篇文章中,我们将探讨 Kubernetes 的基本概念,特别是如何使用命名空间来组织和管理资源。
通过此次实践,你应该对 Kubernetes 的安装过程,特别是使用 Kubeadm
有了初步的了解。如果你有任何问题或进一步的需求,请随时提问!
6 安装Kubernetes之使用Kubeadm安装