使用 kubeadm
搭建 Kubernetes 集群是一个比较常见的方式。kubeadm
是 Kubernetes 提供的一个命令行工具,它可以简化 Kubernetes 集群的初始化和管理。下面是使用 kubeadm
搭建 Kubernetes 集群的基本步骤:
1. 准备工作
确保你的环境中有两台或更多的机器(可以是虚拟机或者物理机),每台机器上安装了 kubeadm
、kubelet
和 kubectl
工具。通常有一个 Master 节点和多个 Worker 节点。
-
关闭交换分区:
bashsudo swapoff -a
并且禁用交换分区的自动挂载,在
/etc/fstab
中注释掉 swap 行。 -
安装 Docker:
bashsudo apt-get update && sudo apt-get install -y docker.io
-
安装 Kubernetes 工具:
bashsudo apt-get update && sudo apt-get install -y apt-transport-https sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-add-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main" sudo apt-get update sudo apt-get install -y kubeadm kubelet kubectl
2. 在 Master 节点上初始化 Kubernetes 集群
-
初始化 Kubernetes 集群:
bashsudo kubeadm init --pod-network-cidr=10.244.0.0/16
--pod-network-cidr
参数是指定 Pod 网络的 CIDR,常见的如10.244.0.0/16
,这个值取决于你使用的网络插件。 -
初始化成功后,会输出一个
kubeadm join
命令,这个命令需要在 Worker 节点上运行,用来加入到 Kubernetes 集群。 -
配置 kubectl 访问 Kubernetes 集群:
bashmkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
3. 部署网络插件
Kubernetes 集群需要一个网络插件来让 Pod 之间进行通信。常用的网络插件有:
- Calico
- Flannel
- Weave Net
例如,使用 Flannel:
bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
4. 在 Worker 节点上加入集群
在 Worker 节点上运行 kubeadm join
命令,命令格式类似:
bash
sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
5. 检查集群状态
-
在 Master 节点上运行以下命令,查看集群的节点状态:
bashkubectl get nodes
如果所有节点的状态是 Ready
,则表示集群搭建成功。
其他部署工具
除了 kubeadm
,还有一些其他常用的 Kubernetes 部署工具和方法:
- Kops:用于 AWS 云上快速创建、管理和维护 Kubernetes 集群。
- Minikube:适用于本地开发的工具,它在虚拟机中启动一个单节点的 Kubernetes 集群,适合学习和开发。
- Rancher:一个集成管理 Kubernetes 集群的工具,提供简单的 UI 界面来管理多集群的 Kubernetes 环境。
- Helm :一个包管理工具,用于管理 Kubernetes 中的应用,类似于 Linux 中的
apt
或yum
。