我使用私人在線服務器通過 kubernetes 設定 jenkins 環境。
我有以下服務檔案:
apiVersion: v1
kind: Service
metadata:
name: jenkins
namespace: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
selector:
app: jenkins
它可以作業,這意味著我可以從我的服務器中獲取 jenkins pod。但是,我無法從本地計算機網路瀏覽器訪問我的服務。
為此,我必須輸入以下命令:
kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>
我已經讀過埠轉發只是除錯(kubectl 埠轉發和 NodePort 服務之間的區別)。但我找不到如何將我的服務配置為從互聯網上可見。我想要持久埠轉發的埠轉發規則的等效項。
uj5u.com熱心網友回復:
您提供的配置應該沒問題,但您必須在節點上配置額外的防火墻規則,才能在NodeIP:NodePort外部連接到您的 Jenkins 服務。
配置裸機集群時有一些注意事項,因為您必須配置自己的負載均衡器才能為您的服務提供外部可用的 IP 地址。云環境使用他們自己的負載均衡器,使這更容易。您可以配置自己的負載均衡器,然后創建一種LoadBalancer服務并以這種方式連接到您的應用程式。在此處查看不同型別的服務
盡管不推薦,但您可以嘗試的另一件事是使您的kubectl port-forward命令持久化。您可以將kubelet 引數 設定streaming-connection-idle-timeout為 0 - 這永遠不會關閉您的轉發。如果您不想更改任何配置,可以運行:
while true; do kubectl port-forward -n jenkins service/jenkins 8080:8080 --address=<localServerIp>; done
您可能會發現一些有用的鏈接:類似案例,在 kubernetes 中公開應用程式。
uj5u.com熱心網友回復:
您可能想測驗Telepresence.io,它允許您建立與遠程 Kubernetes 集群的連接。就像您的本地筆記本電腦位于 Kubernetes 集群中一樣。您可以使用集群 DNS,甚至可以將連接重新路由到您的筆記本電腦。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/407105.html
標籤:
