差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:k8s_cert [2021/06/09 08:06] – [Exp1. 以 *.ingress-devops.ichiayi.com 來設定為預設服務使用的 SSL 憑證] jonathan | tech:k8s_cert [2021/06/10 15:34] (目前版本) – [參考網址] jonathan | ||
|---|---|---|---|
| 行 7: | 行 7: | ||
| - 將憑證匯入 K8s 內 (建立 secret tls) | - 將憑證匯入 K8s 內 (建立 secret tls) | ||
| - 設定 K8s 使用 secret tls | - 設定 K8s 使用 secret tls | ||
| + | |||
| + | ===== 更新憑證步驟 ===== | ||
| + | * 可透過 kubectl edit secret 方式進行人工編輯 Exp. devops-tls< | ||
| + | kubectl edit secret devops-tls | ||
| + | </ | ||
| + | * 可先刪除 secret 後馬上 create 方式處理 Exp. devops-tls< | ||
| + | kubectl delete secret devops-tls | ||
| + | kubectl create secret tls devops-tls --cert=cert1.pem --key=privkey1.pem | ||
| + | </ | ||
| ===== Exp1. 以 *.ingress-devops.ichiayi.com 來設定為預設服務使用的 SSL 憑證 ===== | ===== Exp1. 以 *.ingress-devops.ichiayi.com 來設定為預設服務使用的 SSL 憑證 ===== | ||
| - 確認 DNS 已設定好 *.ingress-devops.ichiayi.com <cli> | - 確認 DNS 已設定好 *.ingress-devops.ichiayi.com <cli> | ||
| - | rkeuser@pve-devops1: | + | $ ping ttt.ingress-devops.ichiayi.com |
| PING ttt.ingress-devops.ichiayi.com (172.16.0.190) 56(84) bytes of data. | PING ttt.ingress-devops.ichiayi.com (172.16.0.190) 56(84) bytes of data. | ||
| 64 bytes from iiiDevOps.unassigned-domain (172.16.0.190): | 64 bytes from iiiDevOps.unassigned-domain (172.16.0.190): | ||
| 行 26: | 行 35: | ||
| - 透過 Rancher Web admin 登入的管理介面 | - 透過 Rancher Web admin 登入的管理介面 | ||
| - cluster -> System -> Resources -> Workloads 找到 nginx-ingress-controller -> View/Edit YAML | - cluster -> System -> Resources -> Workloads 找到 nginx-ingress-controller -> View/Edit YAML | ||
| - | - 加上指定預設憑證為 ingress-wildcard-tls : < | + | - 加上指定預設憑證為 ingress-wildcard-tls : < |
| - | : | + | |
| - | : | + | |
| - | containers: | + | |
| - | - args: | + | |
| - | - / | + | |
| - | - --default-backend-service=$(POD_NAMESPACE)/ | + | |
| - | - --configmap=$(POD_NAMESPACE)/ | + | |
| - | - --election-id=ingress-controller-leader | + | |
| - | - --ingress-class=nginx | + | |
| - | - --tcp-services-configmap=$(POD_NAMESPACE)/ | + | |
| - | - --udp-services-configmap=$(POD_NAMESPACE)/ | + | |
| - | - --annotations-prefix=nginx.ingress.kubernetes.io | + | |
| - | - --default-ssl-certificate=default/ | + | |
| - | env: | + | |
| - | - name: POD_NAME: | + | |
| - | : | + | |
| - | : | + | |
| - | </ | + | |
| - SAVE 之後 K8s 的 ingress 服務會重新啟動, | - SAVE 之後 K8s 的 ingress 服務會重新啟動, | ||
| - 檢查之前已在 K8s 內透過 ingress 的 https 連線網頁, | - 檢查之前已在 K8s 內透過 ingress 的 https 連線網頁, | ||
| - | ===== Exp2. 對 devops.ichiayi.com 這服務來設定 SSL 憑證 ===== | + | ===== Exp2. 對 sonarqube-devops.ichiayi.com 這服務來設定 SSL 憑證 ===== |
| + | - 確認 DNS 已經設定好 sonarqube-devops.ichiayi.com < | ||
| + | $ ping sonarqube-devops.ichiayi.com | ||
| + | PING sonarqube-devops.ichiayi.com (172.16.0.190) 56(84) bytes of data. | ||
| + | 64 bytes from iiiDevOps.unassigned-domain (172.16.0.190): | ||
| + | 64 bytes from iiiDevOps.unassigned-domain (172.16.0.190): | ||
| + | 64 bytes from iiiDevOps.unassigned-domain (172.16.0.190): | ||
| + | </ | ||
| + | - 透過 Let's Encrypt 產生 SSL 憑證< | ||
| + | sudo certbot \ | ||
| + | -d sonarqube-devops.ichiayi.com \ | ||
| + | | ||
| + | </ | ||
| + | - 將憑證匯入 K8s 內 (建立 secret tls-> **sonarqube-devops-tls** , namespace -> **my-devops**) < | ||
| + | kubectl create secret tls sonarqube-devops-tls --cert=cert.pem --key=privkey.pem -n my-devops | ||
| + | </ | ||
| + | - 設定 K8s 使用 secret tls (修改 sonarqube-devops.ichiayi.com 的 ingress 設定) Exp. sonar-server-ingress-ssl.yaml | ||
| + | * 將 nginx.ingress.kubernetes.io/ | ||
| + | * spec: 增加 tls: 設定 < | ||
| + | tls: | ||
| + | - hosts: | ||
| + | - " | ||
| + | secretName: sonarqube-devops-tls | ||
| + | </ | ||
| + | * 修改後類似以下的結果 | ||
| + | apiVersion: networking.k8s.io/ | ||
| + | kind: Ingress | ||
| + | metadata: | ||
| + | name: sonarqube-ing | ||
| + | namespace: my-devops | ||
| + | annotations: | ||
| + | nginx.ingress.kubernetes.io/ | ||
| + | spec: | ||
| + | tls: | ||
| + | - hosts: | ||
| + | - " | ||
| + | secretName: sonarqube-devops-tls | ||
| + | rules: | ||
| + | - host: " | ||
| + | http: | ||
| + | paths: | ||
| + | - backend: | ||
| + | serviceName: | ||
| + | servicePort: | ||
| + | path: "/" | ||
| + | pathType: " | ||
| + | </ | ||
| + | * 透過 kubectl 讓 ingress 生效 < | ||
| + | kubectl apply -f sonar-server-ingress-ssl.yaml | ||
| + | </ | ||
| + | * 檢查 https:// | ||
| ===== 參考網址 ===== | ===== 參考網址 ===== | ||
| 行 56: | 行 96: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| {{tag> | {{tag> | ||