使用K8S进行集群搭建需要以下步骤:

| 步骤 | 操作 |
| ---- | ---- |
| 1 | 安装Ubuntu操作系统 |
| 2 | 安装Docker |
| 3 | 安装K8S组件 |
| 4 | 初始化Master节点 |
| 5 | 加入Worker节点 |
| 6 | 验证集群的正常运行 |
| 7 | 部署应用到K8S集群 |

下面将逐步介绍每一步应该做什么,以及相应的代码示例:

**步骤1:安装Ubuntu操作系统**

首先需要在每台机器上安装Ubuntu操作系统。根据自己的实际情况选择合适的版本进行安装。

**步骤2:安装Docker**

K8S需要使用到Docker来运行容器。在Ubuntu上安装Docker可以使用以下命令:

```shell
# 更新包管理器
sudo apt-get update

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

# 添加Docker的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker的APT仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 更新包管理器
sudo apt-get update

# 安装Docker
sudo apt-get install -y docker-ce

# 启动Docker服务
sudo systemctl start docker

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

**步骤3:安装K8S组件**

K8S集群由Master节点和Worker节点组成,需要在Master节点上安装K8S的组件,包括kube-apiserver、kube-controller-manager、kube-scheduler和kube-proxy。在所有节点上还需要安装kubelet和kubectl工具。可以使用以下命令进行安装:

```shell
# 添加K8S的GPG密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加K8S的APT仓库
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

# 更新包管理器
sudo apt-get update

# 安装K8S组件和工具
sudo apt-get install -y kubelet kubeadm kubectl

# 禁止自动更新K8S组件
sudo apt-mark hold kubelet kubeadm kubectl

# 启动kubelet服务
sudo systemctl enable kubelet
```

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

在Master节点上使用kubeadm工具进行集群初始化。可以使用以下命令进行初始化:

```shell
# 初始化Master节点
sudo kubeadm init
```

初始化成功后,会输出一些信息,包括kubeadm join的命令,用于将Worker节点加入到集群中。

执行完该命令后,还需要进行一些配置,以便使用kubectl工具连接到集群。可以使用以下命令进行配置:

```shell
# 创建.kube目录
mkdir -p $HOME/.kube

# 复制配置文件
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# 修改配置文件的权限
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```

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

在Worker节点上执行之前输出的kubeadm join命令,将Worker节点加入到集群中。

```shell
# 将Worker节点加入K8S集群
sudo kubeadm join : --token --discovery-token-ca-cert-hash
```

**步骤6:验证集群的正常运行**

在Master节点上使用kubectl工具查看集群状态,以确保集群正常运行。可以使用以下命令进行验证:

```shell
# 查看集群节点状态
kubectl get nodes

# 查看集群组件状态
kubectl get pods -n kube-system
```

如果所有节点和组件的状态都正常,则集群搭建成功。

**步骤7:部署应用到K8S集群**

最后一步是将自己的应用部署到K8S集群中。首先需要创建一个Deployment来定义应用的容器镜像、副本数等信息,并通过Service来暴露应用的访问入口。

以下是一个示例的Deployment的YAML文件:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.17.9
ports:
- containerPort: 80
```

以下是一个示例的Service的YAML文件:

```yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
```

将上述两个文件保存为nginx-deployment.yaml和nginx-service.yaml,并使用kubectl工具进行部署:

```shell
# 创建Deployment
kubectl apply -f nginx-deployment.yaml

# 创建Service
kubectl apply -f nginx-service.yaml
```

部署成功后,可以使用kubectl工具查看应用的状态,并通过访问NodePort获取应用的访问地址。

通过以上步骤,你已经成功地使用K8S搭建了一个集群,并将自己的应用部署到集群中。希望这篇文章对你有所帮助!