第一步,定義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,需要重新啟動才能生效