在Kubernetes (K8S) 中使用 Nginx 来进行反向代理是一种常见的做法,可以帮助我们实现负载均衡、安全性和性能优化。本文将介绍如何在K8S 中设置 Nginx 反向代理,并且配置代理的端口。

### 步骤概览

以下是我们实现“nginx manager proxy 反向代理 端口”的步骤概览:

| 步骤 | 操作 |
|---|---|
| 1 | 部署 Nginx Ingress Controller |
| 2 | 创建代理服务(Service) |
| 3 | 创建 Ingress Resource |

### 具体操作步骤及代码示例

#### 步骤 1: 部署 Nginx Ingress Controller

首先,我们需要在 K8S 集群中部署 Nginx Ingress Controller。可以通过以下命令完成:

```bash
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/baremetal/deploy.yaml
```

这个命令会从官方仓库拉取配置文件并应用到集群中,部署 Nginx Ingress Controller。

#### 步骤 2: 创建代理服务(Service)

接下来,我们需要创建一个 Service 来定义一个端口和 IP 地址。这个 Service 将会被 Ingress Resource 使用,用来将外部流量导向到我们的 Nginx 代理服务上。

```yaml
apiVersion: v1
kind: Service
metadata:
name: my-nginx-service
spec:
selector:
app: my-nginx-app
ports:
- protocol: TCP
port: 80
```

通过上述的 YAML 文件定义了一个名为 `my-nginx-service` 的 Service,它将工作在端口号 80 上。

#### 步骤 3: 创建 Ingress Resource

最后一步是创建 Ingress Resource,来将外部的流量通过 Nginx Ingress Controller 代理到我们的服务上。

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

在上述的 YAML 文件中,我们定义了一个名为 `my-ingress` 的 Ingress Resource,将 `example.com` 的流量代理到我们在步骤 2 中创建的 `my-nginx-service` Service 上的端口 80。

通过以上三个步骤,我们成功地实现了在 K8S 中使用 Nginx 做反向代理,并且配置了反向代理的端口。希望这篇指南对你有所帮助!