## 实现端口映射服务端口号的步骤

在K8S中,实现端口映射服务端口号是为了将外部流量引导到集群内部的服务上,为了实现这一功能,我们需要进行如下步骤:

| 步骤 | 操作 |
|---|---|
| 1 | 创建一个Deployment来运行服务 |
| 2 | 创建一个Service来暴露服务 |
| 3 | 创建一个Ingress对象来配置端口映射 |


### 步骤1:创建一个Deployment来运行服务

首先,我们需要定义一个Deployment对象,用于运行我们的服务。下面是一个示例的Deployment文件:

```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-app-image:latest
ports:
- containerPort: 8080
```

在这个文件中,我们定义了一个名为`my-app`的Deployment,它运行了一个镜像为`my-app-image:latest`的容器,容器内部监听了8080端口。

### 步骤2:创建一个Service来暴露服务

接下来,我们需要创建一个Service对象,用于暴露Deployment中运行的服务。下面是一个示例的Service文件:

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

在这个文件中,我们定义了一个名为`my-app`的Service,它将来自80端口的流量转发到Deployment中监听的8080端口上。

### 步骤3:创建一个Ingress对象来配置端口映射

最后,我们需要创建一个Ingress对象,来配置端口映射和路径关联。下面是一个示例的Ingress文件:

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: my-app
port:
number: 80
```

在这个文件中,我们定义了一个名为`my-ingress`的Ingress对象,它将所有来自80端口的HTTP流量映射到名为`my-app`的Service上。

通过以上步骤,我们成功实现了端口映射服务端口号的配置,将外部流量引导到集群内部运行的服务上。

希望以上内容能够帮助你理解如何在K8S中实现端口映射服务端口号,如果有任何问题或疑惑,欢迎随时提问!