在Kubernetes(K8S)集群中,通过配置ENSP(External Network Service Proxy)来管理端口号和IP地址是非常常见的操作。本文将详细介绍如何配置端口号和IP地址,以及每个步骤所需的代码示例。

### 步骤概览
在开始配置之前,让我们先了解整个流程。以下是配置端口号和IP地址的步骤概览:

| 步骤 | 描述 |
| --- | --- |
| 1 | 创建Service资源 |
| 2 | 配置Service资源的Port和TargetPort |
| 3 | 指定Service资源的Type为NodePort |
| 4 | 获取NodePort端口号 |
| 5 | 使用NodePort端口号访问Service |

### 代码示例
#### 步骤1:创建Service资源
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
```
- 说明:创建一个名为`my-service`的Service资源,关联到`my-app`的Pod,监听80端口并将流量转发至8080端口。

#### 步骤2:配置Port和TargetPort
在上述代码示例中已经设置了Port和TargetPort。Port是Service暴露出来的端口,而TargetPort是Pod中容器应用监听的端口。

#### 步骤3:指定Service资源的Type为NodePort
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
```
- 说明:将Service的类型指定为NodePort,表示Service将通过Node上的一个固定端口暴露出来。

#### 步骤4:获取NodePort端口号
```bash
kubectl get svc my-service
```
- 说明:使用kubectl命令获取名为`my-service`的Service资源信息,包括NodePort端口号。

#### 步骤5:使用NodePort端口号访问Service
假设NodePort端口号为`32000`,则可以通过`NodeIP:32000`访问Service。

### 总结
通过以上步骤,我们成功配置了Service资源的端口号和IP地址,并通过NodePort方式暴露了Service。在实际操作中,可以根据具体需求调整端口号和IP地址的配置,以实现灵活的网络访问控制。希望这篇科普文章能够帮助你更好地理解如何配置ENSP的端口号和IP地址。