K8S(Kubernetes)是目前最流行的容器编排工具之一,用于协调和管理容器化应用程序。搭建一个K8S集群是使用K8S的第一步,本文将向刚入行的小白介绍K8S集群搭建的顺序和每个步骤的代码示例。

## K8S集群搭建顺序

下表展示了K8S集群搭建的步骤和顺序。

| 步骤 | 描述 |
| --- | --- |
| 1 | 安装和配置虚拟化技术(可选) |
| 2 | 安装和配置操作系统 |
| 3 | 安装和配置Docker |
| 4 | 安装和配置Kubernetes主节点 |
| 5 | 安装和配置Kubernetes工作节点 |
| 6 | 配置集群网络 |
| 7 | 部署Kubernetes网络插件 |
| 8 | 测试集群的运行状态 |

接下来,我们逐步介绍每个步骤需要做什么,以及相应的代码示例。

### 1. 安装和配置虚拟化技术(可选)

如果你想在虚拟机上搭建K8S集群,可以安装和配置虚拟化技术,如VirtualBox、VMware等。这里以VirtualBox为例。

### 2. 安装和配置操作系统

安装和配置操作系统是搭建K8S集群的基础。你可以选择安装Linux发行版,如Ubuntu、CentOS等。这里以Ubuntu为例。

### 3. 安装和配置Docker

K8S使用Docker作为默认的容器运行时,因此需要先安装和配置Docker。以下是在Ubuntu上安装Docker的示例代码:

```shell
# 更新包列表
sudo apt update

# 安装Docker的依赖组件
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加Docker的APT存储库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新包列表
sudo apt update

# 安装Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动并设置Docker开机自启
sudo systemctl enable docker
sudo systemctl start docker
```

### 4. 安装和配置Kubernetes主节点

Kubernetes主节点是集群的控制中心,所有对集群的操作都需要通过主节点。以下是在Ubuntu上安装Kubernetes主节点的示例代码:

```shell
# 添加Kubernetes的APT存储库
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 更新包列表
sudo apt update

# 安装Kubernetes组件
sudo apt install -y kubelet kubeadm kubectl

# 启动并设置Kubelet开机自启
sudo systemctl enable kubelet
sudo systemctl start kubelet

# 初始化主节点
sudo kubeadm init
```

初始化主节点的过程可能会需要一些时间,请耐心等待完成。

### 5. 安装和配置Kubernetes工作节点

Kubernetes工作节点是集群的计算节点,负责运行容器化应用程序。以下是在Ubuntu上安装Kubernetes工作节点的示例代码:

```shell
# 添加Kubernetes的APT存储库(同步第4步)

# 更新包列表
sudo apt update

# 安装Kubernetes组件
sudo apt install -y kubelet kubeadm kubectl

# 启动并设置Kubelet开机自启(同步第4步)
```

### 6. 配置集群网络

Kubernetes集群需要一个网络插件来为容器提供网络连接。常用的网络插件有Calico、Flannel等。以下是使用Calico作为网络插件的示例代码:

```shell
# 安装Calico网络插件
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

# 查看网络插件的状态
kubectl get pods -n kube-system
```

### 7. 部署Kubernetes网络插件

等待网络插件的Pod变为Running状态后,即可继续部署其他组件。

### 8. 测试集群的运行状态

最后,我们需要测试集群的运行状态。以下是一个简单的测试示例代码:

```shell
# 创建一个测试Pod
kubectl run test-pod --image=nginx --replicas=1

# 检查Pod的状态
kubectl get pods

# 删除测试Pod
kubectl delete pod test-pod
```

运行这段代码后,如果能够成功创建和删除一个Pod,则表示集群搭建成功。

至此,你已经了解了K8S集群搭建的顺序和每个步骤需要做什么,以及相应的代码示例。希望这篇文章能够帮助你快速入门K8S集群的搭建。祝你成功!