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

相關文章
相關標籤/搜索