为了搭建一个高可用的 Kubernetes 集群,你需要至少3台具有以下配置的服务器(物理机或虚拟机):
- 1 台 Master 节点:用于运行 Kubernetes 控制平面组件(API Server、Controller Manager、Scheduler等)
- 至少 2 台 Worker 节点:用于运行应用程序容器和负载均衡处理请求
以下是在这 3 台服务器上搭建 Kubernetes 集群并实现 Master 高可用的详细步骤:
### 步骤 1:安装 Docker 和 kubeadm
1. 在每台服务器上安装 Docker:
```shell
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
```
2. 在每台服务器上安装 kubeadm、kubelet 和 kubectl:
```shell
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
```
### 步骤 2:初始化 Master 节点
1. 在 Master 节点上执行初始化命令:
```shell
sudo kubeadm init --control-plane-endpoint="<VIP>:6443" --upload-certs --pod-network-cidr=192.168.0.0/16
```
其中,`<VIP>` 是你要使用的虚拟 IP 地址。执行完后,记录下输出中的 kubeadm join 命令,将来会用到。
2. 设置 kubectl 配置文件:
```shell
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
3. 安装网络插件(如 Calico、Flannel):
```shell
kubectl apply -f https://docs.projectcalico.org/v3.19/manifests/calico.yaml
```
### 步骤 3:加入 Worker 节点
1. 在每个 Worker 节点上执行 join 命令(使用步骤 2 中记录的 kubeadm join 命令)。
### 步骤 4:配置 Master 高可用
1. 部署额外的 Control Plane 组件:
```shell
kubectl get nodes
kubectl scale deploy --replicas=3 -n kube-system kube-controller-manager
kubectl scale deploy --replicas=3 -n kube-system kube-scheduler
```
2. 将 ETCD 数据库部署到各个 Master 节点上,确保高可用性。可以使用外部负载均衡器来实现负载分发。
3. 验证 Master 高可用性:
```shell
kubectl get nodes
kubectl get pods -n kube-system
```
通过以上步骤,你可以搭建一个具有 Master 高可用和 Worker 节点的 Kubernetes 集群。记得根据实际情况调整配置和网络设置。祝你搭建成功!