kubernetes 使用 Ingress-nginx 反向代理外部站点
本文旨在展示如何使用 ingress-nginx
作为反向代理加速集群外部服务原理。下文以反向代理 github
为例,读者自行修改域名即可。
创建外部服务及路由描述
- 1、修改
github.com
为目标域名 - 2、修改
gh.example.org
为预期域名 - 3、将下列内容保存为
gh-proxy.yaml
kind: Service
apiVersion: v1
metadata:
name: gh-proxy
spec:
type: ExternalName
externalName: github.com
ports:
- name: https
port: 443
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: &name gh-proxy
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 100m
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/upstream-vhost: github.com
spec:
rules:
- host: gh.example.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: *name
port:
name: https
tls:
- secretName: gh.example.org
为避免阅读障碍,详细的优化参数并未包含在内,如有需求可自行琢磨。
应用变更
操作完成后,即可通过 gh.example.org 访问 github.com 的内容
kubectl apply -f gh-proxy.yaml
围观