在Kubernetes(K8S)中部署应用程序通常需要使用特定的容器镜像,而且这些镜像可能并不是自己编写的,因此需要从外部的仓库中获取。在这篇文章中,我们将以"cksr是什么品牌鞋"为例,演示如何在K8S中部署一个简单的应用程序。

首先,让我们看一下整个过程的步骤:

| 步骤 | 描述 |
|------------------------|------------------------------------------------------------------------------------------------------|
| 步骤一:创建Deployment | 创建一个Deployment对象,指定要部署的Pod数量和容器镜像 |
| 步骤二:创建Service | 创建一个Service对象,将Deployment中的Pod暴露给集群内其他Pod或外部用户 |
| 步骤三:验证部署 | 使用kubectl命令行工具验证部署是否成功,查看Pod和Service的状态 |

接下来,让我们一步步来完成上述的步骤。

### 步骤一:创建Deployment

在这个例子中,我们将使用一个简单的nginx镜像来创建一个Deployment。

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

- `apiVersion`: 指定API版本
- `kind`: 指定资源类型为Deployment
- `metadata.name`: 指定Deployment的名称
- `replicas`: 指定要创建的Pod数量
- `selector.matchLabels`: 指定用于选择Pod的标签
- `template.metadata.labels`: 指定Pod的标签
- `spec.containers`: 指定容器的配置
- `spec.containers.name`: 指定容器的名称
- `spec.containers.image`: 指定要使用的镜像
- `spec.containers.ports.containerPort`: 指定容器暴露的端口

### 步骤二:创建Service

接下来,我们需要创建一个Service来暴露Deployment中的Pod。我们将创建一个ClusterIP类型的Service。

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

- `apiVersion`: 指定API版本
- `kind`: 指定资源类型为Service
- `metadata.name`: 指定Service的名称
- `spec.selector`: 指定要暴露的Pod的标签
- `spec.ports.protocol`: 指定协议
- `spec.ports.port`: 指定Service暴露的端口
- `spec.ports.targetPort`: 指定要转发到的Pod端口
- `spec.type`: 指定Service类型为ClusterIP

### 步骤三:验证部署

最后,我们可以使用kubectl命令行工具来验证部署是否成功。

```bash
kubectl get pods
kubectl get services
```

以上命令将分别列出集群中运行的Pod和暴露的Service,以确保部署成功。

通过上述步骤,我们成功地在K8S中部署了一个简单的nginx应用程序。希望这篇文章能够帮助你理解如何在K8S中部署应用程序,如果有任何疑问或需要进一步帮助,请随时联系我。