整体流程如下表所示:
| 步骤 | 操作内容 |
|---------------------|------------------------------------------------------------|
| 1. 创建Service资源 | 定义一个Service用于对Pod提供负载均衡的服务 |
| 2. 创建Ingress资源 | 配置Ingress资源实现将公网IP映射到Service的端口上 |
现在,让我们一步步来实现上述流程。
### 步骤 1: 创建Service资源
首先,我们需要创建一个Service资源,用于对Pod提供负载均衡的服务。
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
```
上述代码中,我们定义了一个名为`my-service`的Service资源,选择标签为`app: my-app`的Pod作为目标,将服务暴露在端口80,并将流量引导到Pod的端口8080上。
### 步骤 2: 创建Ingress资源
接下来,我们需要创建一个Ingress资源,用于将公网IP映射到Service的端口上。
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: mydomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
```
上述代码中,我们定义了一个名为`my-ingress`的Ingress资源,配置了将`mydomain.com`的流量映射到Service `my-service`的端口80上。
### 部署应用
最后,我们需要部署我们的应用和创建的Service和Ingress资源。
```bash
kubectl apply -f my-app.yaml
kubectl apply -f my-service.yaml
kubectl apply -f my-ingress.yaml
```
通过上述步骤,我们成功地实现了端口映射将内网IP映射到公网固定IP上。现在,可以通过`mydomain.com`来访问我们的应用服务。
希望以上内容对你有所帮助,如有疑问或更多要了解,请随时向我提问。祝你学习进步!