跳转至

01_ingress-nginx 配置

ingress-nginx 部署

Helm 部署ingress

$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo update


$ cat >> ./values.yml << EOF
controller:
  hostNetwork: true
  dnsPolicy: ClusterFirstWithHostNet
  image:
    ## Keep false as default for now!
    registry: hub.test.com:8443/3rdimages/registry.k8s.io
    # digest 根据实际情况进行填写
    digest: sha256:38b51d8833e79d97d4adf825e0bf893e322d19be54ff65a88d9320139a68adfb
  nodeSelector:
    kubernetes.io/os: linux
    ingress: "true"
  kind: Deployment
  admissionWebhooks:
    patch:
      image:
        registry: hub.test.com:8443/3rdimages/registry.k8s.io
        # digest 根据实际情况进行填写
        digest: sha256:6b33a8870727f3e7de55d88283cc778e1775d8099c36c45d095aa831d0f0fbc7 
EOF

$ kubectl create ns ingress-nginx

$ helm \
upgrade --install \
-n ingress-nginx \
ingress-nginx \
--create-namespace \
ingress-nginx/ingress-nginx \
--debug \
-f values.yml

ingress 配置

1、 将http 请求重定向为https 请求

kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'

...

问题记录

1、 http 重定向成https配置

annactions:
  # 设置后不会删除uri最后的/, 直接原样输出
  nginx.ingress.kubernetes.io/preserve-trailing-slash: "true"
  # 设置成http 请求 自动重定向成https 请求
  nginx.ingress.kubernetes.io/ssl-redirect: 'true'
  nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'

如果这样配置仍然不生效? 清检查ingress-nginx 配置 的 use-proxy-protocol 是否为false, 如果不是,请配置它

配置参考官方文档:

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/