Kubernetes(K8S)是一个开源的容器编排引擎,可以帮助我们管理和部署容器化的应用程序。在实际应用中,往往会涉及到在多台服务器上搭建K8S集群。下面我将教你如何在2台服务器上搭建K8S集群。

### 步骤概览

首先,让我们来看看整个搭建K8S集群的步骤,如下表所示:

| 步骤 | 操作 |
|------|---------------------------------|
| 1 | 配置服务器环境 |
| 2 | 安装Docker |
| 3 | 安装Kubeadm |
| 4 | 初始化Master节点 |
| 5 | 加入Worker节点 |
| 6 | 部署网络插件(比如flannel) |
| 7 | 测试集群是否正常工作 |

### 详细步骤和代码示例

#### 步骤1:配置服务器环境

1. 首先,确保服务器上已安装最新版本的Ubuntu操作系统。
2. 使用SSH连接到服务器,以便后续操作。

#### 步骤2:安装Docker

在每台服务器上执行以下命令来安装Docker:

```bash
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
```

#### 步骤3:安装Kubeadm

在每台服务器上执行以下命令来安装Kubeadm、Kubelet和Kubectl:

```bash
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 <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
```

#### 步骤4:初始化Master节点

在Master节点上执行以下命令来初始化集群:

```bash
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
```

根据提示,将输出的`kubeadm join`命令保存下来,后续将用到。

#### 步骤5:加入Worker节点

在Worker节点上执行之前保存的`kubeadm join`命令,将Worker节点加入到集群中:

```bash
sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
```

#### 步骤6:部署网络插件

在Master节点上执行以下命令来安装网络插件(这里以flannel为例):

```bash
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```

#### 步骤7:测试集群是否正常工作

在Master节点上执行以下命令来检查集群的状态:

```bash
kubectl get nodes
kubectl get pods --all-namespaces
```

如果能够看到各节点的状态以及所有的系统核心组件正常运行,则表示Kubernetes集群搭建成功。

### 总结

通过以上步骤,我们成功地在2台服务器上搭建了一个Kubernetes集群。希望这篇文章能帮助你理解整个搭建过程,并顺利完成K8S集群的搭建。如果有任何疑问或问题,欢迎留言讨论。祝愉快地使用Kubernetes!