第一步,定義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名稱和端口
示例api
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,須要從新啓動才能生效編碼