我的公司有 fake.example.com 的现有CA证书和将 fake.example.com 映射到我们的负载均衡器的IP的A记录
负载均衡器正在将流量转发到我们的Kubernetes群集。
在群集中,我已经部署了nginx-ingress头盔图,在30200时将NodePort暴露给https
我已从上述证书中创建了一个名为 test-secret 的k8s TLS秘密。
我已经部署了一个应用服务'测试'并安装了以下入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- fake.example.com
secretName: test-secret
rules:
- host: fake.example.com
http:
paths:
- path: /myapp
backend:
serviceName: test
servicePort: 8080
所以,如果我执行
curl https://{ip for k8s node}:30200/myapp/ping -H 'Host:fake.example.com' -k --verbose
我从我的应用中获得了预期的响应,但我也看到了
* Server certificate:
* subject: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
* start date: Jan 25 20:52:16 2018 GMT
* expire date: Jan 25 20:52:16 2019 GMT
* issuer: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
我已在nginx.conf文件中确认 server_name fake.exampe.com ssl_certificate , ssl_certificate_key ,以及 ssl_trusted_certificate 指向正确的位置
所以我的问题是,是否可以在这种情况下配置nginx以使用正确的证书?
答案 0 :(得分:0)
您必须创建一个名为test-secret
的机密。
➜ charts git:(master) kubectl describe secret --namespace operation mydomain.cn-cert
Name: mydomain.cn-cert
Namespace: operation
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
tls.crt: 3968 bytes
tls.key: 1678 bytes
答案 1 :(得分:0)
如果没有可用的证书(您说model.add(Dense(50, input_shape=(128, 2), kernel_initializer="he_normal" ,activation="relu"))
中的证书),证书无效或如果控制器在{中找不到匹配的主机,则入口控制器将默认为Kubernetes Ingress Controller Fake Certificate
{1}},或者您未配置默认TLS证书就点击了默认后端。
由于您可以提供服务,所以我怀疑其中之一:
test-secret
无效,可能是因为您缺少中间证书或CA证书.spec.tls[]
在错误的命名空间中test-secret
或test-secret
标志?)在负载均衡器前面将入口控制器公开为https://{ip for k8s node}:30200/myapp/ping -H 'Host:fake.example.com'
是不寻常的。如果这是云部署,则应使用类型-k
。如果是前提条件,则可以查看MetalLB