https 自动管理 TLS证书

webosocket支持

  1. apiVersion: extensions/v1beta1
  2. kind: Ingress
  3. metadata:
  4. name: cafe-ingress
  5. annotations:
  6. nginx.org/websocket-services: "ws-svc"
  7. spec:
  8. rules:
  9. - host: cafe.example.com
  10. http:
  11. paths:
  12. - path: /ws
  13. backend:
  14. serviceName: ws-svc
  15. servicePort: 8008

粘性会话

  1. # annotations
  2. nginx.ingress.kubernetes.io/affinity: cookie
  3. nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
  4. nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
  5. nginx.ingress.kubernetes.io/session-cookie-name: route

custom nginx configmap

对于需要改nginx配置需求的, 比如常见的文件上传大小限制

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: nginx-configuration
  5. namespace: kube-system
  6. labels:
  7. app: ingress-nginx
  8. data:
  9. proxy-buffer-size: 16k
  10. proxy-buffers: 8 16k
  11. # maximum allowed size of the client request body
  12. proxy-body-size: 50m

warning: name和namespace可能需要更改,通过describe pod ingress-nginx返回—configmap= 查看

ingress config boilerplate template

  1. apiVersion: extensions/v1beta1
  2. kind: Ingress
  3. metadata:
  4. name: test-ingress
  5. namespace: test
  6. annotations:
  7. kubernetes.io/ingress.class: nginx
  8. # add an annotation indicating the issuer to use.
  9. cert-manager.io/cluster-issuer: letsencrypt-prod
  10. # websocket services required
  11. nginx.org/websocket-services: "ws-svc"
  12. # 粘性会话
  13. nginx.ingress.kubernetes.io/affinity: cookie
  14. nginx.ingress.kubernetes.io/session-cookie-expires: "172800"
  15. nginx.ingress.kubernetes.io/session-cookie-max-age: "172800"
  16. nginx.ingress.kubernetes.io/session-cookie-name: route
  17. spec:
  18. tls:
  19. - hosts:
  20. - test.example.com
  21. secretName: letsencrypt-prod
  22. rules:
  23. - host: test.example.com
  24. http:
  25. paths:
  26. - path: /
  27. backend:
  28. serviceName: svc-test
  29. servicePort: 80

怎么在新的namespace 里面新建ingress

参考测试环境的ingress配置, 修改name, namespace, 根据域名需要修改对应的域名, 一定要注意,ingress, deploy, service必须在同一命名空间中

怎么在已有ingress的namespace 里面新建ingress

新建的ingress name 不能和已有的ingress name 重合,否则会被覆盖掉


瓦雀