在k8s上配置ingress并启用HTTPS证书
第一步,定义Secret文件
该文件设置tls的证书私钥和公钥内容,通过base64编码的内容
tls.crt: 证书公钥
tls.key: 证书私钥
示例
apiVersion: v1 kind: Secret metadata: name: secret-tls data: tls.crt: xxxxx cat xxx.crt | base64 -w 0 tls.key: xxxxx cat xxx.pem | base64 -w 0 type: kubernetes.io/tls
第二步,定义ingress文件
如果希望http的强制转到https,把ingress.kubernetes.io/ssl-redirect设为true
hosts:如果是泛域名*,则需要添加该泛域名的定义
secretName:上一步的secret名称
backend:对应后端的service名称和端口
示例
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: secret-tls-ingress annotations: ingress.kubernetes.io/ssl-redirect: "False" spec: tls: - hosts: - aaa.com - "*.aaa.com" secretName: secret-tls rules: - host: aaa.com http: paths: - backend: serviceName: jira-svc servicePort: 9000 path: /
第三步,部署secret,ingress文件
kubectl create -f xxx.yml
第四步,重启ingress-controller组件
由于目前的ingress-controller版本对tls证书的bug,需要重新启动才能生效