如何将 Azure 多实例容器连接到 Azure 虚拟网络

How to connect Azure Multi-Instance Container to Azure Virtual Network

情况: 我创建了一个 azure 资源。 它有一个容器注册表,带防火墙的虚拟网络。

问题: 创建单个容器实例时,您可以指定虚拟网络,以便防火墙规则、public 静态 ip 和所有网络设置都附加到容器。 但是,在部署多容器实例时,它仅使用带有 docker compose on azure context 的命令完成。

问题: 我想知道如何link多容器实例到虚拟网络?

要在 Azure CLI 中使用 az container create 命令部署 multi-container 组,您必须在 YAML 文件中指定容器组配置。然后将YAML文件作为参数传递给命令。

此 YAML 文件定义了一个名为“myContainerGroup”的容器组,其中包含两个容器、一个私有 IP 地址和两个公开端口。这些容器是从 public 个 Microsoft 映像部署的。该组中的第一个容器运行 internet-facing Web 应用程序。第二个容器,sidecar,通过容器组的本地网络定期向第一个容器中的 Web 应用程序 运行 发出 HTTP 请求。

您需要子网委托权限,即 Microsoft.ContainerInstance/containerGroups。在您现有的 Vnet 子网中

yaml代码

apiVersion: '2021-07-01'
location: westus2
name: myContainerGroup
properties:
  containers:
  - name: aci-tutorial-app
    properties:
      image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
      ports:
      - port: 80
      - port: 8080
  - name: aci-tutorial-sidecar
    properties:
      image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
      resources:
        requests:
          cpu: 1
          memoryInGb: 1.5
  osType: Linux
  ipAddress:
    type: Private
    ports:
    - protocol: tcp
      port: 80
    - protocol: tcp
      port: 8080
  restartPolicy: Always
  subnetIds:
    - id: /subscriptions/b83c1XXXXXX-b5ba-2XXXX74c23f/resourceGroups/v-XX-XXX/providers/Microsoft.Network/virtualNetworks/Vnet1/subnets/default
      name: default
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups

参考:Tutorial: Deploy a multi-container group using a YAML file