在允许列表中打开所需的端口和 IP 地址
虚拟私有云
此允许列表信息仅适用于 VPC 群集。 有关经典群集的允许列表信息,请参阅 在经典群集的允许列表中打开所需的端口和 IP 地址。
在企业允许列表中打开端口
如果企业网络策略阻止通过代理或允许列表从本地系统访问公共端点,则必须允许从本地系统运行 ibmcloud
, ibmcloud ks
, 和 ibmcloud cr
命令、kubectl
指令 和 calicoctl
指令。
从允许列表后面运行 ibmcloud
、ibmcloud ks
和 ibmcloud cr
命令
如果企业网络策略阻止本地系统通过代理或允许列表访问公共端点,要运行 ibmcloud
、ibmcloud ks
和 ibmcloud cr
命令,必须允许 IBM Cloud、IBM Cloud Kubernetes Service 和 IBM Cloud Container Registry 的 TCP 访问。
-
在允许列表中允许通过 443 端口访问
cloud.ibm.com
。 -
通过此 API 端点登录到 IBM Cloud 来验证连接。
ibmcloud login -a https://cloud.ibm.com/
-
在允许列表中允许通过 443 端口访问
containers.cloud.ibm.com
。 -
验证连接。 如果正确配置了访问权,那么将在输出中显示类似于以下内容的消息。
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":""}]}
-
允许访问您计划在允许列表中的端口 443 上使用的 IBM Cloud Container Registry 区域。 全局注册表存储 IBM 提供的公共映像,区域注册表存储您自己的专用或公共映像。 如果允许列表是基于 IP 的,则可以通过查看 此表,了解允许访问 IBM Cloud Container Registry 区域服务端点时打开了哪些 IP 地址。
-
验证连接。 下面是美国东部和美国南部区域注册表的示例。 如果正确配置了访问权,那么会在输出中返回当日的消息。 请注意,如果没有消息,那么将返回
204
。curl -i https://us.icr.io/api/v1/messages
从允许列表后面运行 kubectl
命令
如果企业网络策略阻止本地系统通过代理或允许列表访问公共端点,要运行 kubectl
命令,必须允许群集访问 TCP。
创建群集时,服务端点 URL 中的端口会在 30000-32767 范围内随机分配。 您可以选择为任何可能创建的群集开放端口范围 30000-32767,也可以选择允许特定现有群集访问。
开始之前,允许访问以运行 ibmcloud ks
命令。
要允许访问特定集群:
-
登录到 IBM Cloud CLI。 根据提示,输入您的 IBM Cloud 凭证。 如果您有联合帐户,请包括
--sso
选项。ibmcloud login [--sso]
-
如果集群位于非
default
资源组中,请将该资源组设定为目标。 要查看每个集群所属的资源组,请运行ibmcloud ks cluster ls
。 注:对于该资源组,您必须至少具有查看者角色。ibmcloud target -g <resource_group_name>
-
获取集群的名称。
ibmcloud ks cluster ls
-
检索集群的服务端点 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 ...
-
允许访问在上一步中获得的服务端点 URL 和端口。 如果允许列表是基于 IP 的,则可以通过查看 此表,了解允许访问服务端点 URL 时打开的 IP 地址。
-
验证连接。
- 如果公共云服务端点已启用:
示例命令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" }
- 如果公共云服务端点已启用:
-
可选:对您需要显示的每个集群重复上述步骤。
从允许列表后面运行 calicoctl
命令
如果企业网络策略阻止本地系统通过代理或允许列表访问公共端点,要运行 calicoctl
命令,就必须允许 TCP 访问 Calico 命令。
开始之前,允许访问以运行 ibmcloud
命令和 kubectl
命令。
-
从用于允许
kubectl
命令的主 URL 中检索 IP 地址。 -
获取 etcd 的端口。
kubectl get cm -n kube-system cluster-info -o yaml | grep etcd_host
-
允许通过主 URL IP 地址和 etcd 端口访问 Calico 策略。
在其他服务的允许列表或本地允许列表中允许来自集群的流量
允许工作程序节点与受允许列表保护的服务进行通信。
例如,您可能具有在 IBM Cloud内部或外部运行的服务,或者具有受允许列表保护的在本地运行的服务。 您希望允许从集群传入到这些服务的网络流量。 在服务的允许列表中,必须在集群的 VPC 子网上添加公共网关的外部 IP 地址。
如果要允许从受允许列表保护的服务输出到集群,那么必须在服务的允许列表中添加工作程序节点的专用 IP 地址或集群的 VPC 子网 CIDR。 请注意,由于 VPC 集群中的工作程序节点仅具有专用 IP 地址,因此与 VPC 集群工作程序节点的连接只能源自连接到 IBM Cloud 专用网络的系统。
准备工作
- 登录您的账户。 如果适用,请将相应的资源组设定为目标。 设置集群的上下文。
- 安装
infrastructure-service
CLI 插件。 运行 VPC 基础设施命令的前缀是ibmcloud is
。ibmcloud plugin install infrastructure-service
允许从集群到其他服务的入口
要允许从集群进入其他服务,请修改该服务的允许列表或本地允许列表。
-
获取在其中创建集群的 工作程序区域 和 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 ...
-
对于找到的工作程序区域和 VPC,请确保 在每个工作程序区域中的 VPC 子网上启用了公共网关。
-
列出子网的公共网关。 在输出中,对于集群所在的专区和 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
-
将公共网关 IP 地址添加到服务的允许列表或入站流量的本地允许列表。
-
对要允许流量进出的每个集群重复这些步骤。
允许从另一个服务输出到集群
要允许从其他服务输出到集群,请修改该服务的允许列表或本地允许列表。
- 获取工作程序节点子网或工作程序节点 IP 地址。
- 工作节点子网 CIDR:如果您预计会频繁更改群集中的工作节点数量,例如启用 群集自动分压器,您可能不想为每个新的工作节点更新允许列表。 相反,您可以添加群集使用的 VPC 子网。 请记住,VPC 子网可能会被其他群集的工作节点共享。
- 获取在其中创建集群的 工作程序区域 和 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 ...
- 对于集群所在的专区和 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
- 获取在其中创建集群的 工作程序区域 和 VPC。
- 单个工作节点 IP 地址:如果有少量工作节点只运行一个应用程序且不需要扩展,或者只想添加一个工作节点,请列出集群中的所有工作节点并记下主 IP 地址。 只添加这些工作节点。 如果删除工作节点或向群集添加工作节点,则必须相应更新允许列表。
ibmcloud ks worker ls --cluster <cluster_name_or_ID>
- 工作节点子网 CIDR:如果您预计会频繁更改群集中的工作节点数量,例如启用 群集自动分压器,您可能不想为每个新的工作节点更新允许列表。 相反,您可以添加群集使用的 VPC 子网。 请记住,VPC 子网可能会被其他群集的工作节点共享。
- 将子网 CIDR 或个别工作程序节点 IP 地址添加到服务的允许列表或出站流量的本地允许列表。
- 对要允许流量进出的每个集群重复这些步骤。
在 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