1. 环境准备
确保你有足够的机器来搭建集群。至少需要一台作为控制平面节点(master),一台或多台作为工作节点(worker node)。所有节点需要满足以下条件:
- 操作系统:推荐使用 Ubuntu、CentOS 或者 Debian 等 Linux 发行版。
- 网络:所有节点之间需要能够相互通信,特别是
kubeadm
、kubelet
和kubectl
需要的端口。 - 内核:需要 Linux 4.4 或更高版本。
- Docker:Kubernetes 需要 Docker 作为容器运行时,确保 Docker 已经安装并且运行正常。
2. 安装 kubeadm、kubelet 和 kubectl
在所有节点上安装 kubeadm
、kubelet
和 kubectl
。以 Ubuntu 为例:
sudo apt-get update
sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
3. 初始化 Kubernetes 集群
在控制平面节点上执行以下命令来初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
这里的 --pod-network-cidr
参数用于指定 Pod 网络的 CIDR 范围,你需要根据你的网络插件来选择合适的 CIDR。
初始化完成后,会显示一些加入集群的命令,包括设置 kubectl
访问集群的命令。
4. 设置 kubectl 访问
将 kubeconfig
文件配置到你的用户目录下,以便 kubectl
可以访问集群:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5. 安装网络插件
安装一个网络插件,例如 Calico 或 Flannel,以便 Pod 之间可以相互通信。以 Calico 为例:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
6. 将工作节点加入集群
在每个工作节点上,使用 kubeadm init
完成后显示的 kubeadm join
命令来加入集群。例如:
sudo kubeadm join [master-node-ip]:6443 --token [token] --discovery-token-ca-cert-hash sha256:[hash]
将 [master-node-ip]
、[token]
和 [hash]
替换为实际的值。
7. 验证集群状态
使用以下命令来验证集群状态:
kubectl get nodes