我正在嘗試在我們的本地 Kubernetes 集群 v1.18.6 中設定我的 Jenkins 實體。瀏覽了互聯網上的多篇文章,解釋了這些步驟,但使用了 nodeport IP 而不是使用了入口。
我在找
- 我想在其下訪問 Jenkins 的域:
jenkins.BU.org.com/jenkins. - 使用入口控制器的主從通信。我相信 Jenkins 使用自定義協議與其構建代理進行通信,這是 Java RMI,而不是基于 HTTP。
除了以下檔案中提到的步驟之外,我還必須從我的角度進行哪些其他額外更改。
Kubernetes 及其動態非常新,所以這里的任何幫助都會對我的學習很有幫助,謝謝。
https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-kubernetes
uj5u.com熱心網友回復:
所以從裸露的骨頭開始,我假設以下幾點:
- 您有一個可用的已配置 Kubernetes 集群
- 您在集群中安裝了 Ingress 控制器
首先要明確:
在 Kubernetes 集群中運行的作業負載應該通過服務資源而不是入口資源進行通信。
要記住的第二件事是:
使用 Ingress 資源使您的作業負載可從集群外部訪問
最后,由于您希望使您的 Jenkins 實體可訪問,jenkins.BU.org.com/jenkins那么您將不得不選擇以下之一:
- 購買
org.com域,因為jenkins.BU.org.com是域的子org.com域 - 設定您自己的專用網路(超出了這個問題的范圍和我的知識)
因此,要回答您的問題,您需要執行以下操作以使您的 Jenkins 實體可從集群外部訪問:
- 創建您的 Jenkins 主 Pod 并打開一些埠,比如 8080
- 創建一個服務資源,它選擇你的 Pod 并將埠 80 轉發到埠 8080
- 創建一個 Ingress 資源,將您想要的域名轉發到您的服務到埠 80
- 創建 LoadBalancer 服務以定位您的 Ingress 控制器 Pod
- 將 LoadBalancer 服務與您的實際負載平衡器相關聯(取決于您的環境)
- 將您的域名與負載均衡器 IP 關聯以進行 DNS 決議
解決這個問題的另一種方法是:
- 創建您的 Jenkins 主 Pod 并打開一些埠,比如 8080
- 創建一個 NodePort 型別的服務資源,它選擇你的 Pod 并將埠 80 轉發到埠 8080。這將在你的節點上打開一個埠,然后你應該能夠通過節點的 IP 地址訪問你的 Pod。
- 配置 DNS 以將您想要的域名決議為您節點的 IP。
我不推薦第二種方法,因為這意味著您的節點可以直接訪問 Internet。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/380477.html
標籤:詹金斯 Kubernetes
