标签: azure-container-instances

我可以为Azure容器实例(ACI)分配保留的IP吗?

好的,我有第三方的要求,要从特定IP运行工作负载(以便他们可以将其列入白名单)。我可以为我的ACI容器分配保留的IP吗?

azure azure-container-instances

8
推荐指数
1
解决办法
2369
查看次数

更新已配置容器实例的环境变量

在使用 Azure ACI 在 azure 中配置容器实例后,是否有人尝试过更新现有的环境变量值?

目前,似乎无法使用门户或 Azure CLI 来更新它们。

提前致谢。

azure azure-container-instances

7
推荐指数
1
解决办法
1万
查看次数

如何为 Azure 容器实例配置静态出站 IP

我必须通过静态出站 IP 同步一些数据,我需要事先将这些数据列入数据提供商的白名单。因此,我想为 ACI(Azure 容器实例)配置静态出站 IP 地址。如果没有经济高效的方法来执行此操作,我也可以决定将其配置为应用服务 Web 应用程序,但是,由于资源隔离,ACI 是首选。(因此,一名行为不端的工人无法让整个工人池瘫痪。)

作为参考,这里是我想要实现的目标的简单图表。为简单起见,我将 Web Apps 和 ACI 添加到映像中,但我只需要其中之一,最好是 ACI。

所需解决方案的简化图

我在过去几天阅读了相关的微软文档,所以我知道有多种方法可以做到这一点,但是,令我惊讶的是官方解决方案比我想象的要复杂和昂贵得多。

我尝试过的事情

  • 为应用服务计划配置 NAT(有效,但不是必需的)
  • 使用 ACI 在 vNet 前面部署防火墙(“官方”方式)
  • 在内部包含 ACI 的 vNet 前面配置 NAT(Azure 表示不支持,但可以)
  • 我也尝试过应用程序网关和负载均衡器,但它们仅适用于入站 IP 地址,因此与此问题无关

为应用服务 Web 应用配置 NAT
这可行,但不是所需的解决方案。我可以将 Web 应用程序放入 vNet 中的子网中,然后使用该子网的静态 IP 地址配置NAT 网关。这按预期工作,运行

curl api.ipify.org.
Run Code Online (Sandbox Code Playgroud)

Web 应用程序内将返回我在 NAT 网关中配置的静态 IP 地址。此方法的问题在于,它使用的 Web 应用程序在同一应用程序服务计划上的应用程序之间没有资源使用隔离。

使用 ACI 在 vNet 前面部署防火墙
这是文档中建议的“官方方法”。(顺便说一句,我永远无法按照指南使其工作,但这不是主要问题。)我的主要问题是复杂性和价格。我们不需要防火墙,添加一个防火墙和管理它的负担是我们在这个特定项目中不需要的额外复杂性。价格也很荒谬,我们想要配置一个静态出站 IP,而建议的方式所带来的价格涨幅比我们为应用程序的其余部分支付的价格还要大。(我们每月支付约 400 美元,防火墙起价约 600 美元。)

所以这不是首选。

在包含 ACI 的 vNet …

nat azure azure-virtual-network azure-container-instances

7
推荐指数
1
解决办法
1486
查看次数

Azure 容器应用程序每 30 秒重新启动一次

我有一个基于托管BackgroundService模型的Azure容器应用程序。它本质上只是一个长时间运行的控制台应用程序,它覆盖该BackgroundService.ExecuteAsync方法并等待停止信号(通过传递的取消令牌)。当我在 Docker 中本地运行时,它是完美的 - 一切都按预期运行。当我部署为 Azure 容器应用程序时,它会部署并运行 - 尽管我必须手动将最小规模设置为 1 才能让它运行 - 但它每 30 秒左右重新启动一次,这显然不理想。我的猜测是,Azure 容器应用程序 docker 主机正在以某种方式检查我的实例的运行状况,但不满意,因此尝试重新启动它?只是一个猜测。我缺少什么?

using FR911.DataAccess.Repository;
using FR911.Infrastructure.Commands;
using FR911.Utils;
using FR911.Utils.Extensions;
using SimpleInjector;

IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        services.AddFR911Log4NetConfig();        
        services.AddTransient<ICommandProcessor, CommandProcessor>();
        Container container = new Container();
        container.Register(typeof(ICommandHandler<,>), new List<Type>()
            {
                //typeof(CacheSyncCommandHandler),
            });

#if DEBUG
        container.Verify();
#endif

        services.AddSingleton<Container>(container);
        services.AddHostedService<Worker>();
    })
    .Build();

await host.RunAsync();
Run Code Online (Sandbox Code Playgroud)
    public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;
        private ICommandProcessor _commandProcessor;

        public Worker(ILogger<Worker> logger, ICommandProcessor …
Run Code Online (Sandbox Code Playgroud)

azure-container-instances azure-container-apps

7
推荐指数
1
解决办法
4270
查看次数

如何设置Azure容器实例的FQDN

我使用Azure容器注册表来存储我的私有docker镜像和Azure容器实例来部署它.

我得到一个公共IP地址,可用于验证和简单预览,但不可用(或可与客户共享),因为IP地址是动态的.

有没有办法设置我可以使用的完全限定的域名,而不是在每个容器重启时更改IP地址?

浏览文档并未透露任何相关信息.

azure docker azure-container-instances

6
推荐指数
2
解决办法
2161
查看次数

Azure容器实例磁盘空间定价

这似乎没有在Microsoft门户网站上也未列出,也未在其他任何地方得到解答-因此我可能误解了Azure中如何配置和/或计算此值,但是;

使用Azure容器注册表中的映像实例化Azure中的容器实例,如何为磁盘空间计费?我了解按秒计费的全部内存/ CPU,但是正在运行的实例占用的磁盘空间如何?

官方文档对此似乎很含糊。

azure azure-container-instances

6
推荐指数
1
解决办法
391
查看次数

是否可以通过 IP 限制来限制对 Azure 容器实例的访问

我正在创建一个 Azure 容器实例来托管用于测试目的的索引。目前我只能让它在 IpAddressType 设置为 Public 的情况下工作,但这当然使索引可供全世界使用。

是否可以通过 IP 限制来保护 Azure 容器实例,最好使用 PowerShell?

当我将容器映像配置为 IpAddressType 设置为 Private 时,我无法访问索引。

下面是我用来创建容器实例的命令:

   New-AzureRmContainerGroup -ResourceGroupName $resourceGroup `
                              -Name indexcontainer `
                              -Image $image `
                              -IpAddressType Public `
                              -Location $resourceGroupLocation `
                              -MemoryInGB 6 `
                              -Cpu 2 `
                              -Port 9200
Run Code Online (Sandbox Code Playgroud)

azure azure-container-service azure-container-instances

6
推荐指数
2
解决办法
4085
查看次数

如何将字体添加到 Windows Docker 容器/图像?

我有一个基于 .NET Framework v4.8 构建的控制台应用程序。我正在尝试使用 docker 映像在 Azure 容器实例(ACI)中运行它。我在本地创建了一个 docker 镜像并将其推送到 ACI,并且运行成功。

现在我面临一个问题。此应用程序发送一封包含 RDLC 报告的电子邮件。但是我在邮件中收到的报告的字体与我之前收到的报告(没有 docker)不同。我发现mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019我正在使用的基本 docker 映像没有加载字体。我需要在我的 docker 镜像/容器中安装字体。我怎样才能做到这一点?

以下是我的 Dockerfile 命令:

FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019  AS BASE
COPY . .
ENTRYPOINT BackgroundService.exe
Run Code Online (Sandbox Code Playgroud)

containers docker windows-container azure-container-instances .net-4.8

6
推荐指数
1
解决办法
7905
查看次数

无法在 azure 容器实例中将 azure 文件共享装载为 mongodb 卷

我正在尝试使用 azure 容器实例设置 mongo DB 实例并将其安装在 Azure 文件共享上。

我们收到以下错误:

[initandlisten] WiredTiger error (1) [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1579245437:724939][1:0x7f9419c67b00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
W  STORAGE  [initandlisten] Failed to start up WiredTiger under any compatibility version.
F  STORAGE  [initandlisten] Reason: 1: Operation not permitted
F  -        [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 789
[initandlisten] 

***aborting after fassert() failure
Run Code Online (Sandbox Code Playgroud)

AZ 命令我使用以下命令来创建存储帐户、文件共享和容器实例:

az storage account create -g $resourcegroup -n $storageaccount --sku Standard_LRS …
Run Code Online (Sandbox Code Playgroud)

azure mongodb azure-container-instances

6
推荐指数
1
解决办法
2840
查看次数

在azure容器实例上部署Postgres数据库?

我正在尝试在 azure 容器实例上部署 PostgresDatabase。要使用绑定安装在docker上部署(因为Azure容器实例仅支持绑定安装),我使用以下命令,并将其部署在docker上。 docker run -d -p 5434:5432 --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -e PGDATA=/var/lib/postgresql/data/pgdata -v /home/ubuntu/volum:/var/lib/postgresql/data postgres

如果我做类似的事情来部署在Azure容器实例上

az container create \
    --resource-group $ACI_PERS_RESOURCE_GROUP \
    --name postgreariesdb25-1 \
    --location eastus \
    --image postgres \
    --dns-name-label $ACI_DNS_LABEL \
    --environment-variables POSTGRES_PASSWORD=mysecretpassword PGDATA=/var/lib/postgresql/data/pgdata  \
    --ports 5432  \
    --azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
    --azure-file-volume-account-key $STORAGE_KEY \
    --azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
    --azure-file-volume-mount-path /var/lib/postgresql/data
Run Code Online (Sandbox Code Playgroud)

我在 Azure 容器的日志中收到以下消息

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process. …
Run Code Online (Sandbox Code Playgroud)

postgresql azure azure-container-instances

6
推荐指数
1
解决办法
3953
查看次数