了解 Azure 容器应用中的容器
Azure 容器应用为你管理 Kubernetes 和容器业务流程的详细信息。 Azure 容器应用中的容器可以使用你选择的任何运行时、编程语言或开发堆栈。
Azure 容器应用支持任何基于 Linux 的 x86-64 (linux/amd64
) 容器映像。 无需基本容器映像,如果容器崩溃,它会自动重启。
配置
以下代码是容器应用资源模板的 properties.template
部分中的 containers
数组的一个示例。 摘录显示了在使用 Azure 资源管理器 (ARM) 模板的情况下,设置容器时的一些可用配置选项。 对模板 ARM 配置部分的更改会触发新的容器应用修订。
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
}
]
"probes":[
{
"type":"liveness",
"httpGet":{
"path":"/health",
"port":8080,
"httpHeaders":[
{
"name":"Custom-Header",
"value":"liveness probe"
}]
},
"initialDelaySeconds":7,
"periodSeconds":3
// file is truncated for brevity
多个容器
可以在单个容器应用中定义多个容器,以实现挎斗模式。 容器应用中的容器共享硬盘和网络资源,并且这些容器具有相同的应用程序生命周期。
挎斗容器的示例包括:
- 一个代理,可从共享卷上的主应用容器读取日志并将其转发到日志记录服务。
- 一个后台进程,用于刷新共享卷中的主应用容器使用的缓存。
注意
在单个容器应用中运行多个容器是一个高级用例。 在大多数情况下,你想要运行多个容器(例如在实现微服务体系结构时这样做),请将每个服务部署为单独的容器应用。
若要在容器应用中运行多个容器,请在容器应用模板的容器数组中添加多个容器。
容器注册表
通过在容器应用配置中提供凭据,你可以部署托管在专用注册表上的映像。
若要使用容器注册表,请在容器应用资源模板的 properties.configuration 部分的注册表数组中定义必需的字段。 passwordSecretRef 字段标识已定义密码的机密数组名称中的机密名称。
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
添加注册表信息后,在部署你的应用时,可以使用所保存的凭据从专用注册表中拉取容器映像。
限制
Azure 容器应用具有以下限制:
- 特权容器:Azure 容器应用无法运行特权容器。 如果程序尝试运行一个需要根访问权限的进程,则容器中的应用程序会遇到运行时错误。
- 操作系统:需要基于 Linux (
linux/amd64
) 的容器映像。