azure - Azure 容器部署 - “操作失败,状态为 200:资源状态失败”
问题描述
在 Azure 中,我们尝试使用带有准备好的 YAML 的 Azure 容器实例来创建容器。在我们执行 az container create 命令的机器上,我们可以在输入密码后成功登录到我们的私有注册表(例如JFrog Artifactory上的 fa-docker-snapshot-local.docker.comp.dev ),我们也可以 docker pull 它
docker login fa-docker-snapshot-local.docker.comp.dev -u svc-faselect
Login succeeded
这样我们就可以拉取成功了,镜像路径和手动 docker pull 的时候一样:
image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1
我们有用于部署的 YAML 文件,并尝试使用来自 SAME 服务器的 az 命令创建容器。在 YAML 文件中,我们设置了相同的注册表信息:服务器、用户名和密码以及相同的图像
az container create --resource-group FRONT-SELECT-NA2 --file ads-azure.yaml
当我们尝试执行此命令时,需要 30 分钟,然后显示该消息:“部署失败。操作失败,状态为 200:资源状态失败”
完整的 Yaml:
apiVersion: '2019-12-01'
location: eastus2
name: ads-test-group
properties:
containers:
- name: front-arena-ads-test
properties:
image: fa-docker-snapshot-local.docker.comp.dev/fa/ads:test1
environmentVariables:
- name: 'DBTYPE'
value: 'odbc'
command:
- /opt/front/arena/sbin/ads_start
- ads_start
- '-unicode'
- '-db_server test01'
- '-db_name HEDGE2_ADM_Test1'
- '-db_user sqldbadmin'
- '-db_password pass'
- '-db_client_user HEDGE2_ADM_Test1'
- '-db_client_password Password55'
ports:
- port: 9000
protocol: TCP
resources:
requests:
cpu: 1.0
memoryInGB: 4
volumeMounts:
- mountPath: /opt/front/arena/host
name: ads-filesharevolume
imageRegistryCredentials: # Credentials to pull a private image
- server: fa-docker-snapshot-local.docker.comp.dev
username: svcacct-faselect
password: test
ipAddress:
type: Private
ports:
- protocol: tcp
port: '9000'
volumes:
- name: ads-filesharevolume
azureFile:
sharename: azurecontainershare
storageAccountName: frontarenastorage
storageAccountKey: kdUDK97MEB308N=
networkProfile:
id: /subscriptions/746feu-1537-1007-b705-0f895fc0f7ea/resourceGroups/SELECT-NA2/providers/Microsoft.Network/networkProfiles/fa-aci-test-networkProfile
osType: Linux
restartPolicy: Always
tags: null
type: Microsoft.ContainerInstance/containerGroups
你能帮助我们为什么会发生这个错误吗?谢谢
解决方案
据我所知,你的 YAML 文件没有问题,我只能给你一些可能的原因。
- 确保配置正确,服务器 URL、用户名和密码,还包括图像名称和标签;
- 从 9000 更改端口
'9000' into
,我的意思是删除双引号; - 看一下Note,可能挂载卷导致容器崩溃。然后你需要将文件共享挂载到一个新文件夹,我的意思是以前不存在的新文件夹。
推荐阅读
- r - 使用健全性检查基于字符类型列对多个数据表进行排序
- java - 运行 r:setPlotDevice 和 JavaGD 时出现致命错误
- javascript - 父子复选框选择
- python - 随机播放两个 python 列表
- node.js - 获取行的单元格
- kubernetes - Kubernetes-JAVA-API 资源
- unit-testing - 如何在golang中模拟通过测试的方法
- c++ - 我正在从 BMP 文件中读取像素的 RGB 值,但没有得到正确的值
- ionic-framework - 如何查询子集合 firestore ionic 4
- python - 如何使用 tkinter 正确显示熊猫数据框?