【问题标题】:Kubernetes: Nginx Ingress Annotation ----> nginx.ingress.kubernetes.io/secure-backendsKubernetes:Nginx Ingress Annotation ----> nginx.ingress.kubernetes.io/secure-backends
【发布时间】:2018-09-02 13:58:24
【问题描述】:

问题:我正在尝试使用 ingress 访问托管在我的 k8 集群上的 vault 集群。当前使用的是 nginx 入口控制器 0.10.2 版本。

我将自定义生成的 TLS 证书与指向 Vault 集群的 Ingress 一起使用。我在与 ingress 相同的命名空间中拥有 TLS 证书。

问题:无法通过提供带有 ca.crt 入口的 vault status 命令来访问后端。

Env 变量集是

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

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

7 backend_ssl.go:146] unexpected error generating SSL certificate with full intermediate chain CA certs: Invalid certificate.

我已生成与 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

【问题讨论】:

  • 您也可以尝试添加符号nginx.ingress.kubernetes.io/secure-verify-ca-secret,这将等于vault-server-ingress-tls。我有类似的设置,但有很大的不同;如果 Vault 已经在内部提供 SSL,那么将 ingress.kubernetes.io/ssl-passthrough 设置为 true 会更有意义,这样入口控制器就会忽略 ssl 部分。更多文档here
  • 谢谢大卫,我已经尝试过使用 ssl-passthrough 表示法,bt 不起作用。您能否提供一个适合您的示例。我只是想把它作为参考,找出我哪里出错了。

标签: ssl nginx kubernetes


【解决方案1】:

你可以试试:

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

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 2019-12-21
    • 2019-08-16
    • 1970-01-01
    • 2023-03-13
    • 2021-07-03
    • 1970-01-01
    相关资源
    最近更新 更多