Kubernetes - 5.2 Discovery and Load Balancing - Ingress-阿里云开发者社区

开发者社区> 云原生> 正文
登录阅读全文

Kubernetes - 5.2 Discovery and Load Balancing - Ingress

简介:

什么是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

查看ingress详细信息
kubectl get ingress -o yaml
image

kubectl describe ingress nginx-ingress
image

Ingress开启TLS支持

在创建Ingress可以通过spec.tls字段可以启用TLS,TLS的密钥对信息可以通过Secret进行存储。

  tls:
    - hosts:
        - nginx.com
      secretName: ingress-certificate

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'

开启WebSocket支持

  annotations:
    nginx.org/websocket-services: teamcity-server-service

更多请参考 https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/

使用技巧

1、安全性考虑建议不要不指定host,所有ingress对象都必须指定host配置,这将保证到一定的安全性。
2、安全性考虑建议开启全站的TLS,多域名的证书可以使用通配符或者多域名集成一张的证书。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云原生
使用钉钉扫一扫加入圈子
+ 订阅

云原生时代,是开发者最好的时代

其他文章
最新文章
相关文章