Kubernetes(简称K8S)是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。当我们在使用K8S进行容器化部署时,经常会遇到需要预留端口的情况。预留端口是为了确保某个特定的端口不被K8S动态分配给其他服务使用,通常用于服务与外部资源通信或特定服务对外提供服务。

在K8S中实现端口预留的过程并不复杂,下面我将详细介绍如何实现“k8s 预留端口”的步骤及代码示例。

### 实现“k8s 预留端口”流程

| 步骤 | 操作 |
| :--- | :--- |
| 1 | 创建Namespace或选择现有的Namespace |
| 2 | 创建Service对象预留端口 |
| 3 | 部署应用到预留端口的Service上 |

### 代码示例与操作步骤

#### 步骤一:创建Namespace或选择现有的Namespace

```yaml
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace
```

上述代码创建了一个名为`my-namespace`的Namespace,用于存放后续创建的服务对象和部署的应用。

#### 步骤二:创建Service对象预留端口

```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: my-namespace
spec:
ports:
- port: 8080 # 预留的端口
targetPort: 8080 # 目标端口
protocol: TCP # 端口协议
selector:
app: my-app # 需要绑定的应用标签
```

通过上述代码段,我们创建了一个名为`my-service`的Service对象,其中预留了端口`8080`用于后续应用的使用。

#### 步骤三:部署应用到预留端口的Service上

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: my-namespace
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 8080 # 应用监听的端口
```

在上述代码段中,我们通过创建一个Deployment来部署名为`my-app`的应用,并将其绑定到之前创建的`my-service`提供的预留端口`8080`上。

通过以上步骤,我们成功实现了在K8S中预留端口的过程。希望以上内容能够帮助到刚入行的小白开发者,顺利实现“k8s 预留端口”的功能。在K8S的学习过程中,不断实践和探索是十分重要的,祝愿大家在容器化部署的道路上越走越远!