什么是Ingress
Ingress可以将Kubernetes内部的Service通过HTTP/HTTPS的虚拟主机方式暴露到集群外部,可以由Ingress定义请求的路由规则。
Ingress 基础操作
通过资源定义清单创建Ingress
kubectl apply -f nginx-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules: - host: nginx.com http: paths: - backend: serviceName: nginx-service servicePort: 80 path: /
tls: - hosts: - nginx.com secretName: ingress-certificate
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
查看ingress详细信息
kubectl get ingress -o yaml
kubectl describe ingress nginx-ingress
Ingress开启TLS支持
在创建Ingress可以通过spec.tls字段可以启用TLS,TLS的密钥对信息可以通过Secret进行存储。
tls: - hosts: - nginx.com secretName: ingress-certificate
- 1
- 2
- 3
- 4
Ingress相关参数
在Ingress可以配置特定的能力,例如后端的负载权重,负载均衡算法,持久化会话,连接超时时长,开启WebSocket等。
连接性相关的
annotations: nginx.ingress.kubernetes.io/proxy-connect-timeout: '6000' nginx.ingress.kubernetes.io/proxy-read-timeout: '6000' nginx.ingress.kubernetes.io/proxy-send-timeout: '6000'
- 1
- 2
- 3
- 4
开启WebSocket支持
annotations: nginx.org/websocket-services: teamcity-server-service
- 1
- 2
更多请参考 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
使用技巧
1、安全性考虑建议不要不指定host,所有ingress对象都必须指定host配置,这将保证到一定的安全性。
2、安全性考虑建议开启全站的TLS,多域名的证书可以使用通配符或者多域名集成一张的证书。
文章来源: yekangming.blog.csdn.net,作者:叶康铭,版权归原作者所有,如需转载,请联系作者。
原文链接:yekangming.blog.csdn.net/article/details/104495488