ssl-Kubernetes:Nginx入口注释—-> nginx.ingress.kubernetes.io/secure-backends

问题:我正在尝试使用ingress到达位于我的k8集群上的Vault集群.当前使用的是nginx入口控制器0.10.2版本.

我正在使用Ingress指向Vault群集的自定义生成的TLS证书.我在与Ingress相同的命名空间中使用了TLS证书.

问题:无法通过向vault status命令提供ca.crt来进入后端来到达后端.

环境变量集是

        VAULT_ADDR=https://vault.ingress.staging.k8s.com
        VAULT_SKIP_VERIFY=true

无法获取状态,即流量在入口本身已停止.当我检查入口控制器的日志时,它说

7 backend_ssl.go:146]生成带有完整中间链CA证书的SSL证书时发生意外错误:无效的证书.

我已经生成了与Ingress资源的通用名称匹配的自定义TLS证书.因此无法弄清楚为什么会这样.想法可能是由于错误的入口注释用法.

我的问题是ingress.kubernetes.io/secure-backends:“true”有什么问题吗?如果可以,您能否提供有关如何使用它的信息?

笔记:

>我正在使用适当的入口类,并且肯定知道那没有问题.
>我已经部署了一些示例来检查入口是否存在问题.即使这样也很好.

*谁能提供nginx.ingress.kubernetes.io/secure-backends的工作示例*

与这个问题有关的任何解决方案将不胜感激!!!

Ingress.yaml

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: vault
  namespace: default
  annotations:
    ingress.kubernetes.io/secure-backends: 'true'
    kubernetes.io/ingress.class: "k8s"
spec:
  tls:
    - hosts:
        - vault.ingress.staging.k8s.com
      secretName: vault-server-ingress-tls
  rules:
    - host: vault.ingress.staging.k8s.com
      http:
        paths:
          - path: /
            backend:
              serviceName: example
              servicePort: 8200
最佳答案
您可以尝试:

kubernetes.io/ingress.class: "<your_class>"
nginx.ingress.kubernetes.io/secure-backends: "true"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"

请记住,ssl-passthrough要求必须将其他命令行参数添加到nginx-ingress-controller部署中(默认情况下处于禁用状态):

--enable-ssl-passthrough

参考https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#ssl-passthrough

转载注明原文:ssl-Kubernetes:Nginx入口注释—-> nginx.ingress.kubernetes.io/secure-backends - 代码日志