对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

配置网络对等互连

注意

  • 此功能不适用于 M0 集群和 Flex 集群。

Atlas 支持 AWS、Google Cloud 和 Azure 托管的专用集群,以及多云分片集群的网络对等连接。

网络对等互连可在 Atlas VPC 与云提供商的 VPC 之间建立私有连接。该连接将流量与公共网络隔离以提高安全性。

Atlas 不支持 您在不同云提供商的单个区域部署的集群之间建立网络对等互连。

要使用Atlas Kubernetes Operator管理网络对等连接,您可以指定并更新spec.networkPeersAtlasProject 自定义资源的参数。每次更改任何支持的自定义资源中的 spec 字段时,Atlas Kubernetes Operator 创建或更新 相应的 Atlas 配置。

要使用 Atlas Kubernetes Operator 配置网络对等互连,您需要:

  • Project OwnerAtlas中的Organization Owner 或 角色。

  • 如果尚未创建,请在Azure中创建 VNet。要学习;了解详情,请参阅使用Azure门户创建虚拟网络。

  • 配置网络对等连接所需的Azure角色。

    要学习;了解详情,请参阅Azure权限。

  • Atlas对等互连应用程序 ID的服务主体。

    注意

    有关Atlas如何创建与Azure VPC的网络对等互连互连连接的详细信息,请参阅 网络对等对等互连中的 Azure标签页。

    在创建每个Azure网络对等连接之前,必须完成以下步骤:

    1. 运行以下Azure CLI命令,使用指定的Atlas对等互连应用程序 ID创建服务主体:

      az ad sp create --id e90a1407-55c3-432d-9cb1-3638900a9d22

      您只需为每个订阅执行一次此操作。 如果收到以下消息,则具有Atlas对等互连应用程序 ID的服务主体已经存在。 继续执行下一步。

      Another object with the same value for property servicePrincipalNames already exists.
    2. 复制以下示例peering-role.json文件并将其保存到当前工作目录:

      1{
      2 "Name":"AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>",
      3 "IsCustom":true,
      4 "Description":"Grants MongoDB access to manage peering connections on network /subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>",
      5 "Actions":[
      6 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read",
      7 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write",
      8 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete",
      9 "Microsoft.Network/virtualNetworks/peer/action"
      10 ],
      11 "AssignableScopes":[
      12 "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>"
      13 ]
      14}
    3. peering-role.json中的变量替换为要创建对等连接的Azure VNet 的详细信息:

      变量
      说明

      azureSubscriptionId

      VNet 所在的Azure订阅的唯一标识符。

      resourceGroupName

      Azure 资源组的名称。

      vnetName

      Azure VNet 的名称。

    4. 运行以下Azure CLI命令以使用peering-role.json文件创建角色定义:

      az role definition create --role-definition peering-role.json
    5. 运行如下所示的Azure CLI命令,将创建的角色分配给服务主体。

      将变量替换为您在peering-role.json文件中使用的相同值。

      az role assignment create \
      --role "AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>" \
      --assignee "e90a1407-55c3-432d-9cb1-3638900a9d22" \
      --scope "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>"

通过以下步骤,使客户端能够使用网络对等互连连接到 Atlas 集群:

1

您可以配置网络对等互连,从而使用现有的 容器或新容器。

  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 AWS

    spec.networkPeers.containerId

    要使用的网络对等互连容器的唯一标识符。 如果您不指定containerId ,则必须设置atlasCIDRblock 。 要了解详情,请参阅此过程中的Create New Container部分。

    spec.networkPeers.accepterRegionName

    您的VPC的 AWS地区。

    spec.networkPeers.awsAccountId

    AWS 帐户的唯一标识符。当您单击控制台主页右上角的帐户名称时,AWS 会显示帐户 ID。

    spec.networkPeers.routeTableCidrBlock

    AWS VPCCIDR 块。AWSVPC 的详细信息页面显示 CIDR 块。

    spec.networkPeers.vpcId

    AWS VPC 的唯一标识符。AWSVPC 的详细信息页面显示 VPC ID。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "AWS"
    containerID: "6dc5f17280eef56a459fa3fb"
    accepterRegionName: "us-east-2"
    awsAccountId: "12345678"
    routeTableCidrBlock: "10.0.0.0/24"
    vpcId: "vpc-12345678"
    EOF
  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 AWS

    spec.networkPeers.atlasCidrBlock

    Atlas Kubernetes Operator为其创建新容器的Atlas CIDR区块。如果不指定 atlasCidrBlock,则必须指定现有容器的 containerId。要学习;了解更多信息,请参阅此过程中的 Use Existing Container 部分。

    spec.networkPeers.containerRegion

    (可选) Atlas Kubernetes Operator在其中创建新容器的AWS地区。如果您未指定 containerRegioncontainerId, Atlas Kubernetes Operator将在与 accepterRegionName 相同的地区中创建一个新容器。

    spec.networkPeers.accepterRegionName

    您的VPC的 AWS地区。

    spec.networkPeers.awsAccountId

    AWS 帐户的唯一标识符。当您单击控制台主页右上角的帐户名称时,AWS 会显示帐户 ID。

    spec.networkPeers.routeTableCidrBlock

    AWS VPCCIDR 块。AWSVPC 的详细信息页面显示 CIDR 块。

    spec.networkPeers.vpcId

    AWS VPC 的唯一标识符。AWSVPC 的详细信息页面显示 VPC ID。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "AWS"
    atlasCidrBlock: "10.8.0.0/21"
    containerRegion: "us-west-1"
    accepterRegionName: "us-east-2"
    awsAccountId: "12345678"
    routeTableCidrBlock: "10.0.0.0/24"
    vpcId: "vpc-12345678"
    EOF
2
  1. 运行以下命令:

    kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}'
    WAITING FOR USER
  2. 如果statusName值为WAITING FOR USER ,请继续下一步。 如果statusName不是WAITING FOR USER ,请等待几分钟,然后重试此步骤。

3

要学习;了解更多信息,请参阅接受VPC对等互连连接。

4

再次运行以下命令,检查VPC连接状态。当网络对等连接完成时, Atlas Kubernetes Operator返回 READY

kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}'
READY
1

您可以配置网络对等互连,从而使用现有的 容器或新容器。

  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 AZURE

    spec.networkPeers.containerId

    要使用的网络对等互连容器的唯一标识符。 如果您不指定containerId ,则必须设置atlasCIDRblock 。 要了解详情,请参阅此过程中的Create New Container部分。

    spec.networkPeers.accepterRegionName

    VPC的Azure地区。

    spec.networkPeers.azureSubscriptionId

    Azure订阅的唯一标识符。 Azure在订阅的详细信息页面上显示订阅ID 。

    spec.networkPeers.resourceGroupName

    人类可读标签,用于标识包含 VPC Azure 资源群组。Azure在资源组的详细信息页面显示资源群组名称。

    spec.networkPeers.azureDirectoryId

    Azure Active Directory 租户的唯一标识符。 Azure在租户属性页面上将其显示为 Tenant ID

    spec.networkPeers.vnetName

    用于标识Azure VNET 的人类可读标签。 Azure会在 VNET 的详细信息页面上显示 VNET 名称。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "AZURE"
    containerID: "6dc5f17280eef56a459fa3fb"
    accepterRegionName: "US_EAST_2"
    azureSubscriptionId: "12345678"
    resourceGroupName: "my-group"
    azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100"
    vnetName: "my-vnet"
    EOF
  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 AZURE

    spec.networkPeers.atlasCidrBlock

    Atlas Kubernetes Operator为其创建新容器的Atlas CIDR区块。如果不指定 atlasCidrBlock,则必须指定现有容器的 containerId。要学习;了解更多信息,请参阅此过程中的 Use Existing Container 部分。

    spec.networkPeers.containerRegion

    (可选) Atlas Kubernetes Operator在其中创建新容器的Azure地区。如果您未指定containerRegioncontainerId , Atlas Kubernetes Operator将在与 相同的地区中创建一个新容器。accepterRegionName

    spec.networkPeers.accepterRegionName

    VPC的Azure地区。

    spec.networkPeers.azureSubscriptionId

    Azure订阅的唯一标识符。 Azure在订阅的详细信息页面上显示订阅ID 。

    spec.networkPeers.resourceGroupName

    人类可读标签,用于标识包含 VPC Azure 资源群组。Azure在资源组的详细信息页面显示资源群组名称。

    spec.networkPeers.azureDirectoryId

    Azure Active 目录租户的唯一标识符。 Azure在租户属性页面上将其显示为 Tenant ID

    spec.networkPeers.vnetName

    用于标识Azure VNET 的人类可读标签。 Azure会在 VNET 的详细信息页面上显示 VNET 名称。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "AZURE"
    atlasCidrBlock: "10.8.0.0/21"
    containerRegion: "US_WEST"
    azureSubscriptionId: "12345678"
    resourceGroupName: "my-group"
    azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100"
    vnetName: "my-vnet"
    EOF
2

运行以下命令,检查VPC连接状态。当网络对等连接完成时, Atlas Kubernetes Operator返回 READY

kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY
1

您可以配置网络对等互连,从而使用现有的 容器或新容器。

  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 GCP

    spec.networkPeers.containerId

    要使用的网络对等互连容器的唯一标识符。 如果您不指定containerId ,则必须设立atlasCIDRblockcontainerRegion 。 要学习;了解详情,请参阅此过程中的Create New Container部分。

    spec.networkPeers.gcpProjectId

    Google Cloud Platform项目的唯一标识符。 Google Cloud Platform在项目的详细信息页面上显示项目ID 。

    spec.networkPeers.routeTableCidrBlock

    CIDRGoogle Cloud PlatformVPC 区块。Google Cloud Platform会在 的详细信息页面上显示 CIDR VPC区块。

    spec.networkPeers.networkName

    Google Cloud Platform VPC的人类可读标签。 Google Cloud Platform会在VPC的详细信息页面上显示网络名称。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "GCP"
    containerId: "6dc5f17280eef56a459fa3fb"
    gcpProjectId: "12345678"
    networkName: "my-vpc"
    EOF
  1. 指定 spec.networkPeersAtlasProject 自定义资源中的参数。将以下占位符替换为您的值:

    占位符
    说明

    spec.networkPeers.providerName

    云提供商名称。指定 GCP

    spec.networkPeers.atlasCidrBlock

    Atlas Kubernetes Operator为其创建新容器的Atlas CIDR区块。如果不指定 atlasCidrBlock,则必须指定现有容器的 containerId。要学习;了解更多信息,请参阅此过程中的 Use Existing Container 部分。

    spec.networkPeers.containerRegion

    您的VPC的 Google Cloud地区。

    spec.networkPeers.containerRegion

    Atlas Kubernetes Operator在其中创建新容器的 Google Cloud地区。如果不指定containerRegion containerId,则必须指定现有容器的 。要学习;了解详情,请参阅此过程中的Use Existing Container 部分。

    spec.networkPeers.gcpProjectId

    Google Cloud Platform项目的唯一标识符。 Google Cloud Platform在项目的详细信息页面上显示项目ID 。

    spec.networkPeers.routeTableCidrBlock

    CIDRGoogle Cloud PlatformVPC 区块。Google Cloud Platform会在 的详细信息页面上显示 CIDR VPC区块。

    spec.networkPeers.networkName

    Google Cloud Platform VPC的人类可读标签。 Google Cloud Platform会在VPC的详细信息页面上显示网络名称。

  2. 运行以下命令:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    networkPeers:
    - providerName: "GCP"
    atlasCidrBlock: "10.8.0.0/21"
    gcpProjectId: "12345678"
    networkName: "my-vpc"
    EOF
2
  1. 运行以下命令:

    kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
    PENDING ACCEPTANCE
  2. 如果status值为PENDING ACCEPTANCE ,请继续下一步。 如果status不是PENDING ACCEPTANCE ,请等待几分钟,然后重试此步骤。

3

要学习;了解更多信息,请参阅使用VPC网络对等互连。

4

再次运行以下命令,检查VPC连接状态。当网络对等连接完成时, Atlas Kubernetes Operator返回 READY

kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY
给本页内容打分

在此页面上