Kubernetes(简称K8S)是一款用于自动部署、扩展和管理容器化应用程序的开源平台。在搭建K8S集群时,通常需要准备多台服务器来承担不同的角色,比如Master节点和Worker节点。那么,K8S是否需要另外一台服务器来搭建呢?答案是肯定的,因为通常至少需要一台Master节点和一台或多台Worker节点。

下面我将介绍在一台服务器上搭建Kubernetes集群的基本步骤,并附上相应的代码示例:

### 步骤概览

在搭建Kubernetes集群时,一般会包括以下步骤:

| 步骤 | 描述 |
|------------|--------------------------------------------------------------|
| 步骤一 | 安装Docker并配置Docker服务 |
| 步骤二 | 安装kubeadm、kubelet和kubectl |
| 步骤三 | 初始化Master节点并加入集群 |
| 步骤四 | 部署Pod网络插件(如Flannel、Calico等) |
| 步骤五 | 加入Worker节点到集群中 |

### 代码示例

#### 步骤一:安装Docker并配置Docker服务

```bash
# 安装Docker
sudo apt-get update
sudo apt-get install -y docker.io
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
```

#### 步骤二:安装kubeadm、kubelet和kubectl

```bash
# 安装kubeadm、kubelet和kubectl
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
```

#### 步骤三:初始化Master节点并加入集群

```bash
# 初始化Master节点
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 配置kubectl访问集群
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

#### 步骤四:部署Pod网络插件

```bash
# 部署Flannel网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```

#### 步骤五:加入Worker节点到集群中

在Worker节点上运行以下命令,并按照输出信息执行:

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

通过以上步骤,你可以在一台服务器上成功搭建一个简单的Kubernetes集群。当你需要扩展集群规模或增加可用性时,可以添加更多的Worker节点或Master节点。希望这篇文章对你有所帮助,让你更好地理解K8S集群搭建的基本流程和代码示例。如果有任何疑问或需要进一步的帮助,欢迎随时向我提问。