创建公共网关
您可以创建公共网关并将其连接到特定虚拟私有云 (VPC) 子网和虚拟服务器实例。 开始之前,请确保查看 关于公共网关 中列出的用例。
准备工作
在创建公共网关之前,必须满足以下先决条件:
- 请确保至少存在一个 VPC 和子网。 有关更多信息,请参阅 创建 VPC 和子网。
- 将任何浮动 IP 地址附加到虚拟服务器实例 (可选)。 有关更多信息,请参阅 保留浮动 IP 地址。
将浮动 IP 地址连接到虚拟服务器实例将允许与该特定实例进行通信,而与子网是否连接到公共网关无关。
一个 VPC 中每个区域仅允许有一个公共网关,但一个公共网关可以连接到该区域内的多个子网。
在控制台中创建公共网关
要使用 IBM Cloud 控制台创建公共网关,请执行以下步骤:
-
转至 IBM Cloud 控制台 并登录到您的帐户。
-
选择导航菜单
,然后单击基础架构
> 网络 > 公共网关。 将显示“VPC 的公共网关”页面。
-
单击 创建 以转至“创建公共网关”页面。
-
选择 编辑位置 图标
,然后输入以下字段的值:
- 地理位置-选择公共网关的大陆。
- 区域-为公共网关选择区域。
- 区域-选择公共网关的区域。
-
请在“详细信息”下的以下字段中输入值:
-
公共网关名称-输入公共网关的唯一名称。
-
资源组-选择公共网关收集器的资源组。 您可以使用此公共网关的默认组,或从列表中选择(如果已定义)。 有关更多信息,请参阅在资源组中组织资源的最佳实践。
资源配置完成后,您将无法更改资源组。
-
VPC- 选择一个 VPC。 您可以对此公共网关使用缺省 VPC,或者从列表中进行选择 (如果已定义)。 如需了解更多信息,请参阅 《 虚拟私有云入门指南 》。
-
标记-(可选) 添加用户标记。 用户标记在帐户范围内可见。 有关更多信息,请参阅使用标记。
-
访问管理标记-(可选) 添加访问管理标记以帮助组织访问控制关系。 有关更多信息,请参阅 使用标记控制对资源的访问。
-
-
复制 样本 API 调用 (可选)。
-
单击创建。
-
如果您没有付费帐户,那么可能会显示 升级帐户 而不是 创建。 如果显示此选项,请单击以在创建公共网关之前将您的帐户更新为付费帐户。 有关更多信息,请参阅升级帐户。
从 CLI 创建公共网关
如果要允许所有连接的资源与公用因特网进行通信,请将公共网关连接到子网。
要创建公共网关,请运行以下命令:
ibmcloud is public-gateway-create my-gateway $vpc us-south-3
将返回的输出中的标识保存在变量中,以便稍后可以使用,例如:
gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"
要将公共网关连接到子网,请运行以下命令:
ibmcloud is subnet-update $subnet --public-gateway-id $gateway
在 VPC 中,每个专区只允许有一个公共网关,但该公共网关可以连接到所在专区中的多个子网。 要查找某个区域的公共网关,请运行 ibmcloud is public-gateways 命令,并查找相应的VPC和区域值。
使用 API 创建公共网关
如果要允许所有连接的资源与公用因特网进行通信,请将公共网关连接到子网。
为专区创建公共网关:
curl -X POST "$vpc_api_endpoint/v1/public_gateways?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-gateway",
"zone": { "name": "us-south-2" },
"vpc": { "id": "'$vpc'" }
}'
将公共网关的标识保存在变量中。
gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"
将公共网关连接到子网。
curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"id": "'$gateway'"
}'
在 VPC 中,每个专区只允许有一个公共网关,但该公共网关可以连接到所在专区中的多个子网。 要查找某个区域的公共网关,请运行 ibmcloud is public-gateways 命令,并查找相应的VPC和区域值。
然后,您可以通过运行以下命令来检索和查看连接到子网的公共网关。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"