HTTPS证书类型的Secret
在传统架构中,域名证书一般在集群入口的代理服务器上进行管理,比如Nginx。
而在Kubernetes中,一般服务都是通过Ingress发布的,此时可以将域名证书保存在TLS类型的Secret上,之后Ingress即可绑定该证书。
首先创建HTTPS的证书文件,假设域名为test.com(自签名证书不受浏览器信任):
openssl.exe req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 365 -out tls.crt
-subj "/CN=test.com"
根据生成的tls.key和tls.crt创建Secret:
$ kubectl -n default create secret tls nginx-test-tls --key=tls.key --cert=tls.crt
最后创建一个Ingress将证书绑定到指定的域名上:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-https-test
labels:
name: nginx-https-test
spec:
rules:
- host: https-test.com
http:
paths:
- backend:
serviceName: nginx-svc
servicePort: 80
tls:
- sercretName: nginx-test-tls
最后更新于
这有帮助吗?