使用不同账号ACR实例的镜像部署应用

SAEACR属于不同账号的情况下,首先确保SAE应用与ACR实例网络可达,然后配置访问ACR实例的授权信息,最后输入镜像仓库的地址来部署应用。

前提条件

确保SAE应用与ACR实例网络可达

需要VPC打通网络,或者为应用所在的VPC开启公网NAT网关。对于ACR企业版实例,还需要将SAE应用所在的VPC网段,或者NAT网关绑定的弹性公网IP地址,添加到ACR实例的白名单中。

如何查看SAE应用所在的VPC

部署应用前,您需要提前规划好它所在的地域和命名空间,这决定了它所在的VPC。

  1. 登录SAE控制台,在顶部选择地域,在左侧导航栏选择命名空间

  2. 单击列表中的目标命名空间,在左侧导航栏选择基础信息,单击专有网络VPC的跳转链接,即可查看VPC ID等信息。

配置访问ACR实例的授权信息

授权方式可以采用静态用户名和密码,也可以采用Ram Role

静态用户名和密码

创建保密字典,用于存储镜像仓库的用户名和密码:在命名空间页面,选择目标地域,单击目标命名空间,在左侧导航栏选择保密字典,单击创建

  • 类型选择私有镜像仓库登录密钥

  • 镜像仓库地址中,输入ACR的公网域名,例如,ACR个人版:registry.cn-xx.aliyuncs.com;ACR企业版:xx-registry.cn-xx.cr.aliyuncs.com。输入登录镜像仓库所需的用户名密码

如何查看登录镜像仓库所需的用户名和密码

  • 对于ACR个人版,您可以登录ACR所属账号,在ACR个人版实例-访问凭证页面,选择ACR实例所在地域,查看用户名并修改密码

    image

  • 对于ACR企业版,您可以登录ACR所属账号,参考配置访问凭证来查看用户名和密码。

    image

Ram Role

SAE能够通过RAM角色扮演的方式实现跨账号拉取阿里云镜像,即用户A(部署SAE应用的账号用户)扮演用户B(ACR镜像所属账号用户)的角色拉取用户B的私有镜像。

  1. 创建RAM角色:通过用户B的阿里云账号,创建用户ARAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色

  2. 配置权限策略创建自定义权限策略修改自定义权限策略,添加以下策略内容,表示允许私有镜像的相关操作。

    {
      "Version": "1",
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "cr:GetAuthorizationToken",
                  "cr:ListInstanceEndpoint",
                  "cr:PullRepository",
                  "cr:GetRepository",
                  "cr:ListRepositoryTag"
              ],
              "Resource": "*"
          }
      ]
    }
  3. RAM角色授予权限策略:为步骤1创建的RAM角色,授予步骤2配置的权限策略。具体操作,请参见RAM角色授权

  4. 修改RAM角色的可信实体:将步骤1创建的RAM角色的可信实体改为SAE服务账号,即修改以下信任策略。具体操作,请参见修改RAM角色的信任策略

    修改前

    修改后

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "RAM": [
                        "acs:ram::123456789012****:root"
                    ]
                }
            }
        ],
        "Version": "1"
    }

    RAM角色可以被阿里云账号(AccountID=123456789012****)下授权的任何RAM用户、RAM角色扮演。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "123456789012****@sae.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    RAM角色仅可以被阿里云账号(AccountID=123456789012****)对应的SAE服务账号(123456789012****@sae.aliyuncs.com)扮演。

    说明

    本示例中的Service为待跨账号拉取镜像的服务。

  5. 复制ARN:在RAM角色的基本信息页面一键复制ARN。这是您在后续部署应用时需要填入的acrAssumeRoleArn

操作步骤

  1. SAE应用列表中,在顶部选择目标地域和命名空间,点击创建应用

  2. 选择应用版本。

    重要

    轻量版专业版目前处于邀约测试阶段。未参与邀约测试的用户,创建的应用为标准版,无需选择应用版本。

    • 轻量版:提供应用运行所需最小功能集,不支持应用监控微服务治理功能

    • 标准版:自带基础应用监控功能,高级应用监控微服务治理功能需要额外开通购买

    • 专业版:自带高级应用监控微服务治理功能,无需额外开通购买

  3. 创建应用页面,自定义应用名称,并配置以下参数信息。

    1. 选择应用所属的命名空间类型。命名空间相当于K8sNamespace,可用于不同环境的资源隔离。创建应用后不支持更改其所属的命名空间,请提前做好规划。

      • 系统创建使用当前地域下系统创建的默认命名空间、交换机和安全组。

      • 选择已有命名空间选择您提前创建的命名空间交换机安全组

    2. 应用部署方式设置为选择镜像部署,单击右侧的设置镜像。在其它阿里云账号私有镜像标签页,配置以下信息。

      • 选择您的ACR镜像服务版本,然后从以下选择一种授权方式。对于ACR企业版,还需要输入企业版实例ID

        • 静态用户名和密码:需选择此前创建的存储镜像仓库用户名和密码的保密字典

        • Ram Role:需输入此前复制的acrAssumeRoleArn

      • 输入完整镜像仓库地址,其格式是<镜像仓库地址>:<镜像Tag>,例如:ACR个人版:registry.cn-xx.aliyuncs.com/xx/xx:1.0;ACR企业版:xx-registry.cn-xx.cr.aliyuncs.com/xx/xx:1.0注意:需要按实际的网络配置来决定使用公网还是私网的镜像仓库地址。

      • 对于ACR企业版,您可以启用镜像加速功能来提升应用启动速度。

    3. 容量设置区域,设置资源类型单实例规格实例数

      参数说明 - 资源类型

      资源类型分为默认海光海光目前处于邀约测试阶段。未参与邀约测试的用户,资源类型自动设置为默认,无需手动选择。

      如需使用海光资源部署应用,请在钉钉群(群号:32874633)联系相关技术人员开通,并且需要选择支持海光资源的地域和可用区:

      • 上海地域:支持可用区B、可用区G和可用区L。

      • 北京地域:支持可用区I。

      • 杭州地域:支持可用区B。

  4. (可选)单击下一步:高级设置,配置所需功能。

    • 启动命令

      应用的启动命令取决于镜像中设定的CMDENTRYPOINT,在SAE中无需额外配置。如有特殊需求,可以通过设置启动命令来覆盖镜像中设定的启动命令。

    • 运行环境与生命周期管理

    • 网络访问与服务调用

    • 数据持久化

      将应用数据存储到NASOSS数据库,避免应用变更或停止导致数据丢失。注意NAS、OSS、数据库需要额外付费。

    • 日志与监控

      • 部署应用后即可查看实时日志查看资源使用情况和负载,无需额外配置。此外,还可以将日志输出到SLSKafka,便于统一管理和分析。注意SLS、Kafka需要额外付费。

      • ARMS监控能够帮助您全面掌控应用运行状态,快速定位出错接口和慢接口,洞察性能瓶颈,重现调用参数,从而大幅提升线上问题诊断的效率。

        • 对于标准版应用,部署后即可查看ARMS基础版监控数据,无需额外配置。此外,还可以开通购买ARMS高级版监控

        • 对于专业版应用,在高级设置中启用应用监控并完成应用部署后,即可查看ARMS高级版监控数据无需额外付费。

    • 其他功能

      • 微服务治理能够实现Java应用的无损上下线流量防护全链路灰度同可用区路由优先

        • 对于标准版应用,在完成应用部署后前往应用详情页开通购买MSE微服务治理功能。

        • 对于专业版应用,在高级设置中启用微服务治理后,即可配置无损上下线。更多功能,可以在完成应用部署后,前往应用详情页配置。无需额外付费。

      • 通过开启CPU Burst功能(仅适用于标准版、专业版)解决启动加载阶段所需的CPU规格高于平时导致的资源浪费问题。

      • 通过添加Sidecar容器实现非业务功能从主容器中解耦与标准化。

      • 通过启用RRSA身份认证实现应用实例级API权限管控,避免传统密钥认证方式存在的密钥泄露风险。

  5. 单击一键创建应用创建应用

    • 创建应用大约需要1~2分钟,可以通过查看变更记录来判断应用是否部署成功。若部署失败,则不会生成应用实例,请根据变更详情中的报错信息排查故障。

    • 可以在应用管理 > 应用列表中查看已创建的应用。如需在部署后变更应用配置,可以单击目标应用进入其详情页,然后在顶部单击部署应用修改应用配置。注意应用将会自动重启以使新配置生效,请在业务低峰期执行操作。

    • 可以通过Webshell登录应用实例,通过控制台命令与应用实例进行交互。

    • 创建应用后,可以手动调整实例数量实例规格,或通过配置弹性伸缩策略来自动调整实例数量。还可以通过开启闲置模式来降低成本。