IBM Cloud Docs
在其他网络允许列表中打开必需的端口和 IP 地址

在其他网络允许列表中打开必需的端口和 IP 地址

虚拟私有云

此白名单信息仅适用于VPC集群。 有关经典集群的允许列表信息,请参阅 在经典集群的允许列表中打开所需端口和IP地址

在公司允许列表中打开端口

如果公司网络政策禁止您从本地系统通过代理或允许列表访问公共终端,则必须允许从本地系统访问 ibmcloudibmcloud ksibmcloud cr 命令kubectl 命令calicoctl 命令

在允许列表中运行 ibmcloudibmcloud ksibmcloud cr 命令

如果公司网络政策阻止您从本地系统通过代理或允许列表访问公共终端,以运行 ibmcloudibmcloud ksibmcloud cr 命令,则必须允许TCP访问 IBM Cloud、IBM Cloud Kubernetes Service 和 IBM Cloud Container Registry。

  1. 请将 cloud.ibm.com 添加到您的白名单中,允许端口 443 访问。

  2. 通过此 API 端点登录到 IBM Cloud 来验证连接。

    ibmcloud login -a https://cloud.ibm.com/
    
  3. 请将 containers.cloud.ibm.com 添加到您的白名单中,允许端口 443 访问。

  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
    

从允许列表后面运行 kubectl 命令

如果公司网络政策禁止您的本地系统通过代理或允许列表访问公共终端,以运行 kubectl 命令,则必须允许群集的TCP访问。

创建集群时,服务端点URL中的端口将在30000-32767之间随机分配。 您可以选择为可能创建的任何集群打开端口范围 30000-32767,也可以选择允许访问特定的现有集群。

开始之前,允许访问以运行 ibmcloud ks 命令

要允许访问特定集群:

  1. 登录到 IBM Cloud CLI。 根据提示,输入您的 IBM Cloud 凭证。 如果您有联合帐户,请包括 --sso 选项。

    ibmcloud login [--sso]
    
  2. 如果集群位于非 default 资源组中,请将该资源组设定为目标。 要查看每个集群所属的资源组,请运行 ibmcloud ks cluster ls:对于该资源组,您必须至少具有查看者角色

    ibmcloud target -g <resource_group_name>
    
  3. 获取集群的名称。

    ibmcloud ks cluster ls
    
  4. 检索集群的服务端点 URL。

    • 如果仅填充了专用服务端点 URL,请获取此 URL。 授权集群用户可以通过专用网络上的此端点来访问主节点。
    • 如果同时填充了公共服务端点 URL专用服务端点 URL,请获取这两个 URL。 授权集群用户可以通过公用网络上的公共端点或专用网络上的专用端点来访问主节点。
    ibmcloud ks 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
      
      示例命令
      curl --insecure https://c3.<region>.containers.cloud.ibm.com:31142/version
      
      示例输出
      {
          "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连接到专用网络,以验证您与主机的连接。 :您必须通过专用负载均衡器公开主节点端点,以便用户可以通过 VPN 或 IBM Cloud® Direct Link 连接访问主节点。
      curl --insecure <private_service_endpoint_URL>/version
      
      示例命令
      curl --insecure https://c3-private.<region>.containers.cloud.ibm.com:31142/version
      
      示例输出
      {
          "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 命令kubectl 命令

  1. 从用于允许 kubectl 命令的主 URL 中检索 IP 地址。

  2. 获取 etcd 的端口。

    kubectl get cm -n kube-system cluster-info -o yaml | grep etcd_host
    
  3. 允许通过主 URL IP 地址和 etcd 端口访问 Calico 策略。

在其他服务的允许列表或本地允许列表中允许来自集群的流量

允许工作程序节点与受允许列表保护的服务进行通信。

例如,您可能具有在 IBM Cloud内部或外部运行的服务,或者具有受允许列表保护的在本地运行的服务。 您希望允许从集群传入到这些服务的网络流量。 在服务的允许列表中,必须在集群的 VPC 子网上添加公共网关的外部 IP 地址。

如果要允许从受允许列表保护的服务输出到集群,那么必须在服务的允许列表中添加工作程序节点的专用 IP 地址或集群的 VPC 子网 CIDR。 请注意,由于 VPC 集群中的工作程序节点仅具有专用 IP 地址,因此与 VPC 集群工作程序节点的连接只能源自连接到 IBM Cloud 专用网络的系统。

准备工作

  1. 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。
  2. 安装 infrastructure-service CLI插件。 运行VPC基础设施命令的前缀是 ibmcloud is
    ibmcloud plugin install infrastructure-service
    

允许从集群到其他服务的入口

要允许从集群进入其他服务,请修改该服务的允许列表或本地允许列表。

  1. 获取在其中创建集群的 工作程序区域VPC

    ibmcloud ks 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 ks 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 ks worker ls --cluster <cluster_name_or_ID>
      
  2. 将子网 CIDR 或个别工作程序节点 IP 地址添加到服务的允许列表或出站流量的本地允许列表。
  3. 对要允许流量进出的每个集群重复这些步骤。