為您的 Satellite 主機設定 HTTP 代理伺服器
您可以設定一個 HTTP 代理伺服器,讓所有來自 Satellite 主機的出站流量皆透過該代理伺服器進行路由。
僅限列入白名單的帳戶可設定 HTTP 代理伺服器。
使用 HTTP 代理伺服器時,需要哪種類型的位置?
請考量下列類型的位置。
- 現有 RHEL 型位置
- 若要設定 Proxy,必須針對 Red Hat CoreOS (RHCOS) 啟用您的位置。 若您現有的位置未啟用 RHCOS,則無法設定 HTTP 代理伺服器。 建立一個已啟用 RHCOS 的位置,然後 設定您的 HTTP 代理伺服器。
- 具有已連接主機的現有 Red Hat CoreOS 已啟用位置
- 若要設定 HTTP 代理伺服器,您必須先從您所在的位置 刪除您的 hosts 檔案。 移除主機後,請參閱《 設定 HTTP 代理伺服器 》。 請注意,您也必須更新組成位置控制平面的主機。 請參閱「更新 Satellite 位置的控制平面主機」。
- 新的 Red Hat CoreOS 啟用位置
- 在將主機綁定至您的位置之前,請先設定您的 HTTP 代理伺服器。
我可以使用哪種類型的主機?
在設定 HTTP 代理伺服器時,您可以使用 RHEL 或 Red Hat CoreOS 主機。 您必須編輯每一個連接至您的位置的主機,包括組成控制平面的主機。 請記得在 proxy.conf 檔案中包括 http 或 https。
關於 HTTP 代理伺服器,我還需要了解哪些資訊?
若要讓 Satellite 位置及叢集使用 Proxy,部署至 Satellite 位置的控制平面基礎架構節點上的 kubelet 必須能夠與 IBM Cloud 控制平面節點 API 伺服器進行通訊。 若要啟用此通訊,您必須符合下列其中一項需求。
-
選項 1: 使用減少的防火牆連接 Script。
-
選項 2:目前的代理伺服器可支援長效的 TCP 連線( TCP 隧道傳輸)。
-
選項 3:您可以在與您的 Satellite 主機位於同一網路的 VSI 上建立一個次要代理伺服器,該代理伺服器需支援長效的 TCP 連線。
-
選項 4:您可以開啟防火牆的外發連接,以允許 TCP 的連線。 如需相關資訊,請參閱 所有地區中主機的必要出埠連線功能,然後尋找地區的特定出埠網路需求。
您無法為工作節點與主節點之間的通訊,或用於連線至套件鏡像伺服器,設定 HTTP 代理伺服器。
設定 TCP 隧道連線
您的代理伺服器必須設定為使用 TCP 隧道傳輸。 以下步驟說明了 TCP 隧道功能的一般設定;有關特定服務供應商的操作說明,請參閱該供應商的文件。
-
設定您的 HTTP 代理伺服器,以隧道傳輸您所有四個位置的公共服務端點的流量。 若要尋找您的端點,
ibmcloud sat location get --location LOCATION_NAME在輸出結果中,找出欄位「公共服務端點 URL」。 您可以從該欄位衍生端點。 例如,如果欄位值為
https://c131-e.us-south.satellite.cloud.ibm.com:31726,則端點為https://c131-1.us-south.satellite.cloud.ibm.com:31726、https://c131-2.us-south.satellite.cloud.ibm.com:31726和https://c131-3.us-south.satellite.cloud.ibm.com:31726。 -
請確保 HTTP 代理伺服器的聆聽埠與 IBM Cloud 上的聆聽埠相同。
-
更新所有 Satellite 主機上的
/etc/hosts,以包括位置公用服務端點將資料流量轉遞至 Proxy,而不是 IBM Cloud 端點。
設定細節因服務供應商而異。 請先在 Satellite 環境之外設定您的代理伺服器,以確認該設定在您的基礎架構中能正常運作,然後再於 Satellite 環境中設定您的代理伺服器。 如需有關設定與配置 HTTP 代理伺服器的更多資訊,請參閱這篇部落格文章 Proxying In Cluster Kube-APIServer Traffic in IBM Cloud Satellite。
要求存取容許清單
若要將您的網址加入 HTTP 代理伺服器的白名單,請透過 建立工單 並使用 IBM 技術支援服務。
例如,使用下列要求作為範本。
Title: Request for addition of HTTP_PROXY config to
location <LOCATION_ID>
Request Body:
We are requesting the following HTTP_PROXY info be added to
the location_ID listed in the title of this ticket.
Use the following HTTP_PROXY info
BE SURE to include the protocol (http:// or https://)
AND the port (`:PORT_NUMBER`) in the endpoint.
HTTP_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER
HTTPS_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER
當支援團隊處理完該工單後,您將收到一則通知,告知您的位置已更新。 若需進行變更,請開啟一張新工單,並在其中註明新的參數。 若要找出您的 LOCATIONID,請執行 ibmcloud sat locations。
設定您的 HTTP 代理伺服器
若要設定 HTTP 代理伺服器,您必須編輯所有主機,包括控制平面中的主機。 如果主機已連接至某個位置 (包括構成控制平面的那些主機),則必須先 從位置中移除它們,然後才能編輯它們。 配置 Proxy 之後,請 將主機重新連接至位置。 有關更新控制平面主機的更多資訊,請參閱 《更新 Satellite 位置的控制平面主機》。
-
選擇您要用於 Proxy 的 鏡映位置。 當您設定 Proxy 時,會使用這個鏡映位置。
-
尋找
NO_PROXY的值。- 若為控制平面主機,請使用
172.20.0.1(若為 RHCOS) 及NO_PROXY=172.20.0.1,$<REDHAT_PACKAGE_MIRROR_LOCATION>(若為 RHEL)。 - 對於 Red Hat OpenShift 主機,Red Hat OpenShift 主機的
NO_PROXY必須包括用於 Red Hat OpenShift 叢集的服務子網路的第一個 IP。 若要尋找此 IP,請執行cluster get指令。
ibmcloud ks cluster get --cluster <ClusterID> ``` 輸出範例 ```sh {: screen} Name: hyp-20220306-1-d2 ID: <ClusterID> ... Service Subnet: 172.21.0.0/16 ... ``` 從這個輸出中,請注意第一個 IP 是 `172.21.0.1`,在此範例中,對於 RHEL 主機,它會對與此特定叢集相關聯的主機產生完整輸出 `NO_PROXY=172.20.0.1,172.21.0.1,$REDHAT_PACKAGE_MIRROR_LOCATION`,對於 RHCOS 主機,則為 `NO_PROXY=172.20.0.1,172.21.0.1,.REGION.satellite.appdomain.cloud`。 例如,`NO_PROXY=172.20.0.1,172.21.0.1,.eu-gb.satellite.appdomain.cloud` 對於 RHCOS 主機的倫敦鏡映位置是正確的。 請注意,RHCOS 值在地區之前包括 `.`。 從工作者節點到叢集服務的任何資料流量都必須包含在 `NO_PROXY` 中。 例如,若要使用映像檔登錄服務來儲存映像檔,請針對每一個工作者節點將 `image-registry.openshift-image-registry.svc` 新增至 `NO_PROXY` ; 控制平面不需要包含此值。 - 若為控制平面主機,請使用
-
導覽至主機上的
/etc/systemd/system.conf.d。 如果該檔案不存在,請使用以下指令建立該檔案。 輸入步驟 2 中NO_PROXY的<VALUE>。mkdir -p /etc/systemd/system.conf.d cat >"/etc/systemd/system.conf.d/proxy.conf" <<EOF [Manager] DefaultEnvironment="HTTP_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "HTTPS_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "NO_PROXY=<VALUE>" EOF chmod 0644 /etc/systemd/system.conf.d/proxy.conf -
請執行以下指令,建立名為
ibm-proxy.sh的檔案。 輸入步驟 2 中NO_PROXY的<VALUE>。mkdir -p /etc/profile.d cat >"/etc/profile.d/ibm-proxy.sh" <<EOF #!/usr/bin/env bash HTTP_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER" HTTPS_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER" NO_PROXY="<VALUE>" export HTTP_PROXY export HTTPS_PROXY export NO_PROXY EOF chmod 0755 /etc/profile.d/ibm-proxy.sh -
將主機重新開機以取得此變更。
-
將主機 連接或重新連接 至該位置。
-
請針對每台主機重複執行這些步驟。
REDHAT_PACKAGE_MIRROR_LOCATION 的值取決於 Red Hat 套件鏡像站的位置。 如果使用多個鏡映,則 REDHAT_PACKAGE_MIRROR_LOCATION 可以是萬用字元。 如需相關資訊,請參閱 如何套用全系統 Proxy。
共用鏡映位置
下列清單提供一些一般鏡映位置。
- Azure
- 個別定義:
rhui-1.microsoft.com、rhui-2.microsoft.com、rhui-3.microsoft.com /etc/yum.repos.d/rh-cloud.repo在baseurl- Google Cloud 提供者
cds.rhel.updates.googlecloud.com/etc/yum.repos.d/rh-cloud.repo在mirrorlist- Amazon Web 服務
- 萬用字元:
aws.ce.redhat.com rhui3.REGION.aws.ce.redhat.com/etc/yum.repos.d/redhat-rhui.repo在mirrorlist- IBM Cloud
- 萬用字元:
service.networklayer.com - dal10:
rhncapdal1001.service.networklayer.com /etc/yum.repos.d/redhat.repo在baseurl