怎么通过Ingress访问到集群内部pod,怎么设置hosts
时间: 2024-04-07 19:29:47 浏览: 16
要通过 Ingress 访问到集群内部的 Pod,需要在 Ingress 配置中指定相应的后端服务。具体操作如下:
1. 创建一个后端服务 Service,在 Service 中指定要暴露的 Pod,如下:
```
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: my-namespace
spec:
selector:
app: my-app
ports:
- name: http
port: 80
targetPort: 8080
```
2. 创建一个 Ingress 资源,将该后端服务与 Ingress 绑定,如下:
```
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: my-namespace
spec:
rules:
- host: my.example.com
http:
paths:
- path: /
backend:
serviceName: my-service
servicePort: http
```
在上述配置中,我们将 Ingress 绑定到了 `my.example.com` 域名,访问该域名的根路径 `/` 时,将会将请求转发到后端服务 `my-service`。
关于如何设置本地 hosts 文件,可以在本地的 hosts 文件中添加一行:
```
<ingress-ip> my.example.com
```
其中 `<ingress-ip>` 是 Ingress 的 IP 地址,可以通过以下命令获取:
```
kubectl get ingress my-ingress -n my-namespace -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
```
这样,在本地访问 `my.example.com` 时,请求会被转发到 Ingress,并最终访问到后端服务中的 Pod。