K8S (Kubernetes) 是一个开源的容器化平台,用于自动化部署、扩展和管理容器化应用程序。在 K8S 中,如何访问应用程序是初学者一开始常常遇到的问题。本文将介绍 K8S 应用部署后如何进行访问,并提供相应的代码示例。

### 整体流程

下面是整个访问部署的流程,共分为六个步骤:

1. 部署 K8S 集群
2. 构建 Docker 镜像
3. 编写 K8S 配置文件
4. 部署应用程序
5. 配置服务和路由
6. 进行访问

接下来,我们将逐步进行每个步骤的详细解释和相应的代码示例。

### 步骤一:部署 K8S 集群

在本地或云平台上搭建一个 K8S 集群,可以使用工具如 minikube、kubeadm 等。

### 步骤二:构建 Docker 镜像

将应用程序打包成 Docker 镜像,并上传至 Docker 镜像仓库,以供 K8S 使用。假设应用程序为一个简单的 Node.js 服务,执行以下命令构建镜像:

```bash
docker build -t your-image-name:tag .
docker push your-image-name:tag
```

### 步骤三:编写 K8S 配置文件

K8S 使用配置文件来定义应用程序的部署和服务。下面是一个示例的配置文件 `deployment.yaml`:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment
spec:
replicas: 3
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: your-container
image: your-image-name:tag
ports:
- containerPort: 8080
```

该配置文件定义了一个名为 `your-deployment` 的 Deployment,它将使用 `your-app` 标签选择需部署的 Pods,并以 `your-image-name:tag` 镜像运行在其中。

### 步骤四:部署应用程序

使用 `kubectl` 命令行工具来部署设置好的配置文件,执行以下命令:

```bash
kubectl apply -f deployment.yaml
```

该命令将创建指定的 Deployment,此时 K8S 将会创建相应数量的 Pods 运行应用程序。

### 步骤五:配置服务和路由

部署应用程序后,需要为其创建一个 Service,以便从集群外部访问。下面是一个示例的配置文件 `service.yaml`:

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

该配置文件定义了一个名为 `your-service` 的 Service,它将通过 `your-app` 标签选择相应的 Pods,并将 TCP 80 端口转发至容器内部的 8080 端口。

执行以下命令创建 Service:

```bash
kubectl apply -f service.yaml
```

### 步骤六:进行访问

经过以上步骤,应用程序已经可以通过 Service 进行访问。可以通过以下命令来获取服务的访问地址:

```bash
kubectl get services
```

查找 `EXTERNAL-IP` 列,找到分配给 `your-service` 的 IP 地址。现在,就可以使用该 IP 地址来访问应用程序了。

### 总结

通过以上六个步骤,我们成功地演示了如何访问 K8S 部署的应用程序。首先,我们部署了 K8S 集群并构建了 Docker 镜像。然后,编写了 K8S 的配置文件,在集群中部署了应用程序。接着,我们创建了一个 Service,配置了端口转发。最后,通过查找获取的 IP 地址,我们实现了应用程序的访问。

希望本文对您理解 K8S 应用部署后如何进行访问有所帮助。如有任何疑问,欢迎留言讨论。