我们有一个Azure容器示例,其中包含RabbitMQ的容器。容器的IP地址不断变化,这使得rabbitmq服务器无法访问。是否有办法使其静态化?如果可以使其静态化,我们是否需要在IP地址上添加DNS?
uqxowvwt1#
这是一个已知的问题,目前已经提出了几种解决方案:Static IP address for Azure Container IntancesAttaching a static ip address to Azure Container Instance另一个解决方案是设置一个Azure function,它定期检查容器示例IP,当它改变时,该函数相应地更新服务器IP。像Kubernetes这样的容器编排系统也可以帮助解决这个问题。
rqqzpn5f2#
正如@evidalpe所指出的,你不能给容器示例分配一个静态的IP地址,但是,你可以使用dnsNameLabel轻松地分配一个静态的/可预测的DNS名称,我发现这比使用IP地址要方便得多。示例:
dnsNameLabel
customdnslabel.westeurope.azurecontainer.io
您可以在创建容器示例时设置DNS名称标签,也可以更新现有示例的标签。您不能使用门户编辑它,但它随后会显示为“FQDN”。Azure CLI示例-适用于创建和更新。Azure CLI也可以使用Cloud Shell执行。
az container create -g myresourcegroup -n mycontainerinstancename --dns-name-label customdnslabel --image rabbitmq
Bicep Template:
resource mycontainerinstance 'Microsoft.ContainerInstance/containerGroups@2021-03-01' = { name: 'mycontainerinstancename' location: location properties: { osType: 'Linux' restartPolicy: 'Always' ipAddress: { dnsNameLabel: 'customdnslabel' type: 'Public' ports: [ // ... ] } containers: [ { name: 'mycontainer' properties: { image: image resources: { requests: { cpu: cpus memoryInGB: memory } } ports: [ // ... ] } } ]
2条答案
按热度按时间uqxowvwt1#
这是一个已知的问题,目前已经提出了几种解决方案:
Static IP address for Azure Container Intances
Attaching a static ip address to Azure Container Instance
另一个解决方案是设置一个Azure function,它定期检查容器示例IP,当它改变时,该函数相应地更新服务器IP。
像Kubernetes这样的容器编排系统也可以帮助解决这个问题。
rqqzpn5f2#
正如@evidalpe所指出的,你不能给容器示例分配一个静态的IP地址,但是,你可以使用
dnsNameLabel
轻松地分配一个静态的/可预测的DNS名称,我发现这比使用IP地址要方便得多。示例:
您可以在创建容器示例时设置DNS名称标签,也可以更新现有示例的标签。您不能使用门户编辑它,但它随后会显示为“FQDN”。
Azure CLI示例-适用于创建和更新。Azure CLI也可以使用Cloud Shell执行。
Bicep Template: