【发布时间】: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