| 步骤 | 操作 |
| ---- | ---- |
| 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
```
**步骤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搭建了一个集群,并将自己的应用部署到集群中。希望这篇文章对你有所帮助!