K8S(Kubernetes)是当前流行的容器编排开源工具,用于管理容器化应用程序的部署、维护和扩展。在K8S中,访问应用程序可以通过服务(Service)来实现,下面我将详细介绍K8S访问的全过程,帮助小白快速上手。

### K8S访问的全过程

| 步骤 | 描述 |
| ---- | ---- |
| 1 | 创建Deployment部署服务 |
| 2 | 创建Service暴露服务 |
| 3 | 获取Service的Cluster IP |
| 4 | 访问Service |

#### 步骤一:创建Deployment部署服务
首先,我们需要创建一个Deployment来部署我们的应用程序。Deployment是Kubernetes中用来定义Pod副本数量和更新策略的资源对象。

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

在上面的代码中,我们创建了一个Deployment,名称为my-app,副本数量为3,容器使用镜像my-image:latest,并暴露了端口8080。

#### 步骤二:创建Service暴露服务
接下来,我们需要创建一个Service来暴露Deployment中的Pod,使外部可以访问我们的应用程序。

```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
```

在上面的代码中,我们创建了一个Service,名称为my-service,将流量从端口80转发到Pod的8080端口。

#### 步骤三:获取Service的Cluster IP
通过以下命令可以获取Service的Cluster IP:

```bash
kubectl get svc my-service
```

将会输出类似以下结果:

```
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service ClusterIP 10.101.130.247 80/TCP 2m
```

Cluster IP是Service在集群内部的IP地址,我们可以通过该IP来访问Service。

#### 步骤四:访问Service
现在,我们就可以通过Cluster IP来访问我们的应用程序了。可以使用curl命令或者浏览器访问Cluster IP地址:

```bash
curl 10.101.130.247
```

通过以上步骤,我们成功实现了K8S访问的全过程。我们首先创建一个Deployment部署服务,然后创建一个Service暴露该服务,获取Service的Cluster IP,最后通过Cluster IP来访问我们的应用程序。

希望以上内容可以帮助你更好地理解K8S访问的全过程,如果有任何疑问欢迎随时提出。祝学习顺利!