第一步,定义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,需要重新启动才能生效