CloudSigma PaaS 允許使用者使用公用 IP 位址公開其應用程式。此位址需要附加到來自 Kubernetes 叢集 環境。在 CloudSigma PaaS 環境中,有兩種方法可以實現此目的:
- 一種方法是將公用 IP 附加到專用的負載平衡器。

- 另一種方法是將公用 IP 附加到 Kubernetes 的 Worker 節點。
在本教學中, 我們將引導您如何使用這兩種方法之一來獲取 Kubernetes 應用程式存取權限。
為 Kubernetes 應用程式存取設定專用負載平衡器
首先,我們將學習如何設定 專用負載平衡器 以進行應用程式存取:
- 前往 CloudSigma Marketplace 以尋找並安裝 Kubernetes 叢集。然後,部署您的應用程式。例如,我們將部署 Jakarta EE Cargo Tracker.
- 在您的 Kubernetes 叢集旁,尋找並按一下 變更環境拓撲。在螢幕上開啟的視窗中,新增一個專用負載平衡器節點。然後,像這樣為其附加一個公用 IP 位址:

在我們的範例中,我們使用了 NGINX 負載平衡器節點。還有多種其他可用的負載平衡器,包括 HAProxy, LS Web ADC 和 Varnish。您可以選擇您偏好使用的任何一個。
當您完成修改拓撲後,套用的變更將如下所示:


3. 下一步是為自訂網域建立 A 記錄。您將使用與先前步驟中相同的公用 IP 位址。在此範例中,我們將使用 cargo-tracker.cloudsigma.website:

4. 現在我們可以將自訂網域附加到 K8s 叢集。為此,我們將發送請求以簽發受信任的 Let’s Encrypt SSL 憑證:
- 將滑鼠懸停在負載平衡器上,然後按一下 Add-Ons.
- 尋找並安裝 Let’s Encrypt Free SSL:

- 在設定中,輸入您的自訂網域名稱,然後按一下 安裝。在我們的案例中,網域名稱如下:

最後,我們現在已經製作了可以使用自訂網域存取的應用程式 https://cargo-tracker.cloudsigma.website。我們還使用有效且受信任的 Let’s Encrypt SSL 憑證對應用程式上的流量進行了加密。
使用 Kubernetes Worker 節點公用 IP 位址獲取應用程式存取權限
接下來,我們將探討另一種可行的方法,使應用程式可在 Kubernetes 叢集外部使用。基本上,我們將學習如何將公用 IP 位址附加到 Kubernetes 叢集中的 worker 節點,以便直接存取應用程式:
讓我們繼續使用先前向您展示的相同範例。我們將使用部署 Cargo Tracker 應用程式的同一個叢集。以下是操作步驟:
1. 按一下 變更環境拓撲。 將公用 IP 位址新增至 worker 節點:

2. 接下來,為您的自訂網域建立一條 A 記錄,並將其對應到您剛剛新增的 IP。請確保您使用的網域名稱與上一章中使用的不同。例如,我們將使用以下網域名稱:cargo-tracker-worker.cloudsigma.website:

3. 將滑鼠懸停在 Control Plane 或 Master 節點上,然後按一下 Add-Ons。尋找並安裝 Certificate Manager。這應該會安裝一個 cert-manager 控制器,以及一個具有 LoadBalancer 服務類型的 NGINX ingress 控制器。後者包含與您的 worker 節點相關聯的 IP 位址。它將提供 “nginx-cert” ingress 類別資源:

4. 在給定的欄位中,輸入您偏好的網域名稱,然後按一下 套用:

5. 在安裝時,該附加元件還會安裝一個名為 helloworld-cert. 的測試應用程式。您只需使用以下命令刪除其使用的資源:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
這些命令應使用 SSH (SFTP) 或 Web SSH Gate 的 Control Plane 或 Master Node. 將滑鼠懸停在節點上,然後按一下 Web SSH 旁邊的選項以存取閘道。
另一個選項是將滑鼠懸停在 Control Plane 或 Master Node 並按一下 Config。從這裡前往 SFTP/SSH Gate 並按照說明的指示操作。
6. 為了終止應用程式 SSL 流量並處理至 cargo-tracker 服務的路由,我們需要建立一個名為 cargo-tracker-worker. 假設我們使用的是 cargo-tracker-worker-ingress.yaml. 您可以使用編輯器(例如 vi )來建立檔案,然後貼上以下程式碼:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
之後,請按照以下步驟操作:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cargo-tracker-worker namespace: default annotations: kubernetes.io/ingress.class: nginx-cert cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/affinity-mode: "persistent" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" spec: tls: - hosts: - cargo-tracker-worker.cloudsigma.website secretName: external-domain-tls rules: - host: cargo-tracker-worker.cloudsigma.website http: paths: - path: / pathType: ImplementationSpecific backend: service: name: cargo-tracker port: number: 80 |
|
1 |
$ kubectl apply -f cargo-tracker-worker-ingress.yaml |
7. 當您建立此 ingress 時,Certificate Manager 將自動為您的新網域名稱核發 Let’s Encrypt SSL 憑證。請等待一兩分鐘,然後再檢查您的應用程式是否可在新的自訂網域名稱上使用,在我們的範例中為 https://cargo-tracker-worker.cloudsigma.website。
大功告成!透過遵循這些步驟,您已使用兩種不同的方法公開了您的應用程式。因此,您將會看到兩個 ingress。對我們來說,它們是:
- cargo-tracker
此 ingress 用於處理透過專用負載平衡器的公用 IP 傳入的應用程式流量。
- cargo-tracker-worker
此 ingress 設定為處理直接從附加到 K8s 工作節點的 IP 流入的應用程式流量。
它們將顯示如下:

根據您選擇的實作方式,您在生產環境中只需要一個 ingress。CloudSigma PaaS 為其用戶提供了多種工具來執行 負載平衡 ,以滿足其應用程式的需求。歡迎閱讀並深入了解 負載平衡 在該平台上。我們也針對如何使用諸如 NGINX 以及 HAProxy 等其他可用工具來進行負載平衡的基礎知識,提供了詳細的指南。
您可以嘗試 CloudSigma’s PaaS ,利用我們的 7 天免費試用 ,或是 聯絡我們 ,以取得更多詳細資訊和平台示範。

留言
目前尚無留言。成為第一個留言的人吧。