1. 配置示例
-
配置HTTPS步驟
-
准備域名證書文件(來自:openssl/cfssl工具自簽或者權威機構頒發)
-
將證書文件保存到Secret
kubectl create secret tls www.scajy.cn --cert=www.scajy.cn.pem --key=www.scajy.cn.key
-
Ingress規則配置tls
-
-
示例代碼
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: www-https spec: tls: - hosts: - www.scajy.cn # 證書里面使用的域名 secretName: www.scajy.cn # 保存的Secret名稱 rules: - host: www.scajy.cn http: paths: - path: / pathType: Prefix backend: service: name: web1 port: number: 80
2. 案例
-
創建證書存放目錄
[root@k8s-master /]# cd /root/ [root@k8s-master ~]# mkdir -p ssl
-
下載證書
[root@k8s-master ~]# cd ssl/ [root@k8s-master ssl]# ll 總用量 8 -rw-r--r--. 1 root root 1732 12月 8 15:10 www.scajy.cn.key -rw-r--r--. 1 root root 3759 12月 8 15:10 www.scajy.cn.pem # 注釋: 這里證書是通過下載后上傳的,自己去權威機構申請后,上傳證書
-
將證書文件保存到Secret
[root@k8s-master ssl]# kubectl create secret tls www.scajy.cn --cert=www.scajy.cn.pem --key=www.scajy.cn.key secret/www.scajy.cn created
-
創建配置文件
[root@k8s-master ingress]# vim https-web-ingress.yaml [root@k8s-master ingress]# cat https-web-ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: www-https spec: tls: - hosts: - www.scajy.cn # 證書里面使用的域名 secretName: www.scajy.cn # 保存的Secret名稱 rules: - host: www.scajy.cn http: paths: - path: / pathType: Prefix backend: service: name: web1 port: number: 80
-
啟動配置文件
[root@k8s-master ingress]# kubectl get ingress Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress NAME CLASS HOSTS ADDRESS PORTS AGE web1 <none> web.scajy.cn 80 22h www-https <none> www.scajy.cn 80, 443 2m8s
-
綁定hosts
-
瀏覽器訪問測試