在允許清單中開啟所需的埠號和 IP 位址

虛擬私有雲

此白名單資訊專屬於 VPC 叢集。 有關經典叢集的允許清單資訊,請參閱《 在經典叢集的允許清單中開啟所需的埠號和 IP 位址 》。

在企業允許清單中開啟埠號

若企業網路政策透過代理伺服器或白名單,阻止您的本地系統存取公共終端點,您必須允許從本地系統執行 ibmcloudibmcloud ocibmcloud cr 指令, 以及 oc 指令與 calicoctl 指令。

在白名單後方執行 ibmcloudibmcloud ocibmcloud cr 指令

若企業網路政策透過代理伺服器或白名單,阻止您的本地系統存取公共端點,則要執行 ibmcloudibmcloud ocibmcloud cr 指令,您必須允許 TCP 存取 IBM Cloud、Red Hat OpenShift on IBM Cloud 及 IBM Cloud Container Registry。

  1. 請在您的允許清單中,允許透過 443 號埠存取 cloud.ibm.com

  2. 藉由此 API 端點登入 IBM Cloud 來驗證您的連線。

    ibmcloud login -a https://cloud.ibm.com/
    
  3. 請在您的允許清單中,允許透過 443 號埠存取 containers.cloud.ibm.com

  4. 驗證連線。 如果正確配置存取權,則會在輸出中顯示類似下列的訊息。

    curl https://containers.cloud.ibm.com/global/v1/versions
    

    輸出範例

    {"kubernetes":[{"major":1,"minor":19,"patch":16,"default":false,"end_of_service":""},{"major":1,"minor":20,"patch":13,"default":false,"end_of_service":""},{"major":1,"minor":21,"patch":7,"default":true,"end_of_service":""},{"major":1,"minor":22,"patch":4,"default":false,"end_of_service":""}],"openshift":[{"major":3,"minor":11,"patch":542,"default":false,"end_of_service":"2022-06-06T12:00:00+0000"},{"major":4,"minor":6,"patch":47,"default":false,"end_of_service":""},{"major":4,"minor":7,"patch":37,"default":false,"end_of_service":""},{"major":4,"minor":8,"patch":21,"default":true,"end_of_service":""}]}
    
  5. 容許存取您計劃在允許清單中的埠 443 上使用的 IBM Cloud Container Registry 地區。 全球登錄會儲存 IBM 提供的公用映像檔,地區登錄會儲存您自己的專用或公用映像檔。 若您的白名單是基於 IP 位址的,您可透過檢視 此表格,了解在允許存取 IBM Cloud Container Registry 區域服務端點時,哪些 IP 位址已被開放。

  6. 驗證連線。 以下是美國東部和美國南部地區登錄的範例。 如果正確配置了存取權,則會在輸出中傳回當日的訊息。 請注意,如果沒有訊息,則會傳回 204

    curl -i https://us.icr.io/api/v1/messages
    

從容許清單後面執行 oc 指令

若企業網路政策透過代理伺服器或允許清單,阻止您的本地系統存取公共端點,則為執行 oc 指令,您必須允許 TCP 存取該叢集。

建立叢集時,服務端點 URL 中的埠號會從 30000 至 32767 之間隨機分配。 您可以選擇為任何可能建立的叢集開啟 30000-32767 號埠範圍,或者選擇允許存取特定的現有叢集。

開始之前,請容許執行 ibmcloud oc 指令的存取。

若要容許存取特定叢集,請執行下列動作:

  1. 登入 IBM Cloud CLI。 系統提示時,請輸入您的 IBM Cloud 認證。 如果您有聯合帳戶,請包含 --sso 選項。

    ibmcloud login [--sso]
    
  2. 如果叢集位於 default 以外的資源群組中,請將目標設為該資源群組。 若要查看每個叢集所屬的資源群組,請執行 ibmcloud oc cluster ls附註:您必須至少具有資源群組的檢視者角色

    ibmcloud target -g RESOURCE_GROUP_NAME
    
  3. 取得叢集的名稱。

    ibmcloud oc cluster ls
    
  4. 擷取叢集的服務端點 URL。

    • 如果只移入專用服務端點 URL,請取得這個 URL。 授權叢集使用者可以透過專用網路上的此端點來存取主節點。
    • 如果公用服務端點 URL專用服務端點 URL 都已移入,請取得這兩個 URL。 授權叢集使用者可以透過公用網路上的公用端點或專用網路上的專用端點來存取主節點。
    ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID
    

    輸出範例

    ...
    Public Service Endpoint URL:    https://c3.<region>.containers.cloud.ibm.com:30426
    Private Service Endpoint URL:   https://c3-private.<region>.containers.cloud.ibm.com:31140
    ...
    
  5. 容許存取您在前一個步驟中取得的服務端點 URL 和埠。 若您的白名單是基於 IP 位址的,您可透過檢視 此表格,了解在允許存取服務端點 URL 時,哪些 IP 位址已被開放。

  6. 驗證連線。

    • 若已啟用公有雲服務端點:
        curl --insecure <public_service_endpoint_URL>/version
        ```
        範例指令
        ```sh {: pre}
        curl --insecure https://c3.<region>.containers.cloud.ibm.com:31142/version
        ```
        輸出範例
        ```json {: screen}
        {
            "major": "1",
            "minor": "7+",
            "gitVersion": "v1.7.4-2+eb9172c211dc41",
            "gitCommit": "eb9172c211dc4108341c0fd5340ee5200f0ec534",
            "gitTreeState": "clean",
            "buildDate": "2017-11-16T08:13:08Z",
            "goVersion": "go1.8.3",
            "compiler": "gc",
            "platform": "linux/amd64"
        }
        ```
    * 若僅啟用了私有雲服務端點,您必須位於您的 IBM Cloud 私有網路中,或透過 VPN 連線連接至該私有網路,才能驗證您與主伺服器的連線。 **附註**:您必須[透過專用負載平衡器公開主節點端點](/docs/openshift?topic=openshift-cluster-access-private-vpc),以便使用者可以透過 VPN 或 IBM Cloud&reg; Direct Link 連接存取主節點。
    ```sh {: pre}
        curl --insecure <private_service_endpoint_URL>/version
        ```
        範例指令
        ```sh {: pre}
        curl --insecure https://c3-private.<region>.containers.cloud.ibm.com:31142/version
        ```
        輸出範例
        ```json {: screen}
        {
            "major": "1",
            "minor": "7+",
            "gitVersion": "v1.7.4-2+eb9172c211dc41",
            "gitCommit": "eb9172c211dc4108341c0fd5340ee5200f0ec534",
            "gitTreeState": "clean",
            "buildDate": "2017-11-16T08:13:08Z",
            "goVersion": "go1.8.3",
            "compiler": "gc",
            "platform": "linux/amd64"
        }
        ```
    
  7. 選用項目:針對您需要公開的每一個叢集,重複這些步驟。

從容許清單後面執行 calicoctl 指令

若企業網路政策透過代理伺服器或白名單,阻止您的本地系統存取公共端點,則要執行 calicoctl 指令,您必須允許 TCP 存取,以便執行 Calico 指令。

開始之前,請容許執行 ibmcloud 指令oc 指令的存取。

  1. 從用於容許 oc 指令的主節點 URL 中擷取 IP 位址。

  2. 取得 etcd 的埠。

    oc get cm -n kube-system cluster-info -o yaml | grep etcd_host
    
  3. 容許透過主節點 URL IP 位址及 etcd 埠存取 Calico 原則。

容許存取允許清單中的 Red Hat OpenShift 映像檔登錄

如果您 為內部影像註冊處設定安全外部路由,或 存取在 VPC 群集中備份內部影像註冊處的 IBM Cloud Object Storage 桶,則必須允許企業允許清單中的內部註冊處和 IBM Cloud Object Storage 端點存取。

  1. 如果您為內部 Red Hat OpenShift 映像檔登錄建立外部路徑,請容許存取 *.containers.appdomain.cloud 網域,以便您可以從公司網路存取 image-registry-openshift-image-registry.<cluster_name>-<ID_string>.<region>.containers.appdomain.cloud 路徑。

  2. VPC 叢集: 如果您必須存取用於備份內部 Red Hat OpenShift 映像檔登錄的 IBM Cloud Object Storage 儲存區,或者如果您必須從公司網路存取 IBM Cloud Object Storage,請容許存取 *.cloud-object-storage.appdomain.cloud 網域。

在其他服務的允許清單或內部部署允許清單中容許來自叢集的資料流量

容許工作者節點與受允許清單保護的服務進行通訊。

例如,您可能具有在 IBM Cloud內部或外部執行的服務,或在內部部署執行且受允許清單保護的服務。 您想要允許從叢集送入那些服務的網路資料流量。 在服務的允許清單中,您必須在叢集的 VPC 子網路上新增公用閘道的外部 IP 位址。

如果您要允許從受允許清單保護的服務輸出至叢集,則必須在服務的允許清單中新增工作者節點的專用 IP 位址或叢集的 VPC 子網路 CIDR。 請注意,因為 VPC 叢集裡的工作者節點只有專用 IP 位址,所以與 VPC 叢集工作者節點的連線只能源自連接至 IBM Cloud 專用網路的系統。

開始之前

  1. 存取您的 Red Hat OpenShift 叢集
  2. 安裝 infrastructure-service CLI 外掛程式。 執行 VPC 基礎架構指令的前綴為 ibmcloud is
    ibmcloud plugin install infrastructure-service
    

容許從叢集進入另一個服務

若要允許從叢集進入另一個服務,請修改該服務的容許清單或內部部署容許清單。

  1. 取得在其中建立叢集的 工作者節點區域VPC

    ibmcloud oc cluster get -c <cluster>
    

    輸出範例

    ...
    Worker Zones:                   us-south-1, us-south-2, us-south-3
    Ingress Subdomain:              vpc-prod.us-south.containers.appdomain.cloud
    Ingress Secret:                 vpc-prod
    Creator:                        -
    Public Service Endpoint URL:    https://c2.us-south.containers.cloud.ibm.com:20267
    Private Service Endpoint URL:   https://c2.private.us-south.containers.cloud.ibm.com:20267
    Pull Secrets:                   enabled in the default namespace
    VPCs:                           ff537d43-a5a4-4b65-9627-17eddfa5237b
    ...
    
  2. 對於您找到的工作者節點區域及 VPC,請確保 已在每個工作者節點區域中的 VPC 子網路上啟用公用閘道

  3. 列出子網路的公用閘道。 在輸出中,針對叢集所在區域及 VPC,記下子網路的閘道 浮動 IP 位址。

    ibmcloud is public-gateways
    

    輸出範例

    ID                                     Name                                       Status      Floating IP      VPC              Zone
    5d308ea5-9f32-43b3-aaae-194d5723a3e5   pgw-b9d45630-c053-11e9-b2f8-79328ce05e7e   available   169.XX.XXX.XX    test-vpc         us-south-1
    f8b95e43-a408-4dc8-a489-ed649fc4cfec   pgw-18a3ebb0-b539-11e9-9838-f3f4efa02374   available   169.XX.XXX.XX    prod             us-south-1
    2ba9a280-fffa-4b0c-bdca-7970f09f9b8a   pgw-73b62bc0-b53a-11e9-9838-f3f4efa02374   available   169.XX.XXX.XX    prod             us-south-2
    057ddef6-631f-4b22-89eb-1e99982a54fa   pgw-64c5cae0-0be2-11ea-8f26-e1565e79a36c   available   52.XX.XXX.XXX    prod             us-south-3
    
  4. 將公用閘道 IP 位址新增至服務的容許清單或入埠資料流量的內部部署容許清單。

  5. 針對您要容許進出之資料流量的每一個叢集,重複這些步驟。

容許從另一個服務輸出至叢集

若要允許從另一個服務輸出至叢集,請修改該服務的容許清單或內部部署容許清單。

  1. 取得工作者節點子網路或工作者節點 IP 位址。
    • 工作節點子網 CIDR 範圍:如果您預期會頻繁變更叢集中的工作節點數量(例如啟用 叢集自動擴展 功能時),您可能不希望針對每個新增的工作節點都更新白名單。 相反地,您可以新增該叢集所使用的 VPC 子網。 請注意,該 VPC 子網區可能會被其他叢集中的工作節點共用。
      1. 取得在其中建立叢集的 工作者節點區域VPC
        ibmcloud oc cluster get -c <cluster>
        
        輸出範例
        ...
        Worker Zones:                   us-south-1, us-south-2, us-south-3
        Ingress Subdomain:              vpc-prod.us-south.containers.appdomain.cloud
        Ingress Secret:                 vpc-prod
        Creator:                        -
        Public Service Endpoint URL:    https://c2.us-south.containers.cloud.ibm.com:20267
        Private Service Endpoint URL:   https://c2.private.us-south.containers.cloud.ibm.com:20267
        Pull Secrets:                   enabled in the default namespace
        VPCs:                           ff537d43-a5a4-4b65-9627-17eddfa5237b
        ...
        
      2. 對於叢集所在區域及 VPC 中的子網路,請注意 子網路 CIDR
        ibmcloud is subnets
        
        輸出範例
        ID                                     Name             Status      Subnet CIDR        Addresses   ACL                                                          Public Gateway                             VPC              Zone
        5f5787a4-f560-471b-b6ce-20067ac93439   vpc-prod-dal1    available   10.240.0.0/24      183/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-1
        e3c19786-1c54-4248-86ca-e60aab74ed62   vpc-prod-dal2    available   10.240.64.0/24     183/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-2
        2930a068-51cc-4eca-807b-3f296d0891b4   vpc-prod-dal3    available   10.240.128.0/24    249/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-3
        
    • 各工作節點的 IP 位址:若您擁有少量僅執行單一應用程式且無需擴展的工作節點,或是僅想新增一個工作節點,請列出叢集中的所有工作節點,並記錄其主要 IP 位址。 僅新增這些工作節點。 若您刪除工作節點或向叢集新增工作節點,必須據此更新您的允許清單。
        ibmcloud oc worker ls --cluster <cluster_name_or_ID>
        ```
    
  2. 將子網路 CIDR 或個別工作者節點 IP 位址新增至服務的容許清單或出埠資料流量的內部部署容許清單。
  3. 針對您要容許進出之資料流量的每一個叢集,重複這些步驟。

在 VPC 安全群組或 VPC ACL 中開啟連接埠

如果您設定 VPC 安全群組VPC 存取控制清單(ACL) 來保護叢集網絡,請確保建立規則以允許必要的流量與其他 IBM Cloud 服務進行通訊。

在公共允許列表中開啟必要的連接埠

可選:允許輸入子網域監控輸入的網路流量

如果您要使用 Ingress 網域健康監控來 監控服務端點的健康狀況,您必須允許監控服務的入站存取。

預設情況下,監控健康要求會透過 HTTPS 傳送至連接埠 443,因此您必須允許來自下列 IP 範圍的流量傳送至連接埠 443。 如果您的健康監測器設定為使用 HTTP,則 allowlist 流量必須以連接埠 80 為目標。 此外,如果您使用自訂 TCP 連接埠,請務必允許傳入流量至該連接埠。

如需詳細資訊,請參閱 IBM NS1 Connect 有關監控的文件

IBM NS1 Connect 監控 IP 範圍
  • 163.114.225.0/24
  • 163.114.230.0/24
  • 163.114.231.0/24

更新 Kubernetes Service 網路區域的 IAM 允許清單

預設情況下,所有 IP 位址都可用來登入 IBM Cloud 主控台,並執行管理群集的動作,例如建立、更新、刪除或檢視憑證。 在 IBM Cloud Identity and Access Management (IAM) 控制台中,您可以 透過指定哪些 IP 位址具有存取權限來建立白名單,而所有其他 IP 位址則會受到限制。

如果您選擇設定 IAM allowlist,則必須包含一個網路區域,其中包含 Kubernetes Service。 否則您現有的群集將無法正常運作。 這是因為 Kubernetes Service 控制平面需要能夠聯絡 IAM,以部署和管理群集所需的 IBM 服務。 在設定您的 IBM 允許清單之前,請仔細遵循這些說明。

在您的允許列表中,您還必須在 Red Hat OpenShift on IBM Cloud 控制平面中為您的群集所在區域設定網路區域,以便 Red Hat OpenShift on IBM Cloud 可以建立或存取元件,例如 Ingress ALB 或 Red Hat OpenShift 網頁主控台,這需要所有控制平面 IP 位址。

開始之前,請注意:以下步驟需要您針對該用戶的 IAM 允許清單進行變更,該用戶的憑證將用於授予叢集所在區域及資源群組的基礎架構權限。 如果您是憑證的所有者,即可變更您自己的 IAM 允許清單設定。 如果您並非憑證所有者,但已被指派「編輯者」或「管理員」IBM Cloud IAM 平台存取角色以 使用「使用者管理」服務,則您可以為憑證所有者更新網路設定。

  1. 登入 IBM Cloud 主控台

  2. 建立網路區域,其中包括所有區域或僅有群集的區域的 Kubernetes Service IP。

    1. 在群集所在的帳戶中,從功能表列按一下管理 > 基於上下文的限制

    2. 按一下網路區域 > 建立

    3. 名稱中,輸入網路區域的描述性名稱,例如 us-south-kubernetes-service-network-zone

    4. 不要為 Allowed IP addresses(允許的 IP 位址 )和 Allowed VPCs(允許的 VPC )部分輸入任何值。

    5. 在「參照服務」區段中,選取 Kubernetes Service 然後按一下 +

    6. 對於位置,您可以將此欄位留空,以便使用所有位置,這適用於其他區域的群集,或者您也可以指定單一區域。

    7. 按下「下一步」,並檢視所選項目。

    8. 按一下建立

    9. 對其他區段重複此步驟。

  3. 將網路區域名稱加入 IAM 允許清單。

    1. 從功能表列按一下管理 > 存取 (IAM),然後選取設定

    2. 限制 IP 位址存取下,選擇啟用,並提供上一步中的網路區域名稱。

    3. 按一下套用