问题:我正在尝试使用入口访问托管在我的 k8 集群上的保管库集群。当前使用的是 nginx 入口 Controller 0.10.2
版本。
我在 Ingress 中使用自定义生成的 TLS 证书,它指向 Vault 集群。我在与 Ingress 相同的命名空间中拥有 TLS 证书。
问题:无法通过提供带有用于入口的 ca.crt 的 vault status
命令来访问后端。
环境变量集是
VAULT_ADDR=https://vault.ingress.staging.k8s.com
VAULT_SKIP_VERIFY=true
无法获取状态,即流量正在入口处停止。当我检查入口 Controller 的日志时,它说
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
关于ssl - Kubernetes: Nginx Ingress注解----> nginx.ingress.kubernetes.io/secure-backends,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49457313/