赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 分布式云容器平台ACK One
  4. 操作指南
  5. 注册集群
  6. 接入云上Serverless算力
  7. ACS算力
  8. ACS算力高级配置
  9. 通过配置项eci-profile配置ACS算力参数

通过配置项eci-profile配置ACS算力参数

  • ACS算力高级配置
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

为了减少您对业务YAML的改动,ACS算力支持eci-profile功能,可以提供集群维度的资源视图。本文介绍如何配置eci-profile。

功能介绍

eci-profile支持Pod配置自动注入,其中包含了交换机、安全组、域名解析模式等集群维度的配置,您可以根据需要进行更新:

  • 更新配置时无需重启acs-virtual-node组件。

  • 对于新创建的ACS Pod,可以即时生效更新后的配置;对于存量ACS Pod,需要滚动发布后才能生效更新后的配置。

配置说明

创建Pod时,系统会读取kube-system命名空间下的eci-profile配置文件(名为eci-profile的ConfigMap),并按照文件中的配置来创建Pod。您可以通过以下命令查看eci-profile的YAML。

kubectl get cm -n kube-system eci-profile -o yaml

YAML内容如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: eci-profile
  namespace: kube-system
data:
  enablePrivateZone: "false"
  securityGroupId: sg-2zeeyaaxlkq9sppl****
  vSwitchIds: vsw-2ze23nqzig8inprou****,vsw-2ze94pjtfuj9vaymf****
  vpcId: vpc-2zeghwzptn5zii0w7****
  selectors: ""

修改eci-profile的方式如下:

  • 通过kubectl edit命令

    kubectl edit configmap eci-profile -n kube-system
  • 通过容器计算服务管理控制台

    1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

    2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择配置管理 > 配置项。

    3. 在配置项页面,选择命名空间为kube-system,找到eci-profile,单击YAML编辑。

      说明

      如果修改eci-profile中的某项配置后,文件存在格式错误,修改的配置将不会生效,具体的错误信息会保存到event中,您可以通过以下kubectl命令查看

      kubectl -n kube-system get event --field-selector involvedObject.namespace=kube-system,involvedObject.name=eci-profile

更新集群配置项

eci-profile中包含了vpcId、vSwitchIds等集群配置项对应VPC、交换机等信息,您可以根据需要进行更新,更新后的配置可以即时生效(热更新)。支持更新的配置项如下:

配置项

示例值

说明

securityGroupId

sg-2ze0b9o8pjjzts4h****

ACS Pod所属安全组。

vSwitchIds

vsw-2zeet2ksvw7f14ryz****

ACS Pod所属交换机。可配置多个,用半角逗号间隔。

vpcId

vpc-2zeghwzptn5zii0w7****

ACS Pod所属VPC。

enablePrivateZone

"false"

是否使用PrivateZone进行域名解析。

说明

上述配置项均为集群级别的默认配置项,如果在创建ACS Pod时没有特别修改和覆盖某些参数,系统将会采用eci-profile中预先设定的默认配置。

配置Selectors

创建Pod时,系统会按照Selectors去匹配Pod,对于Label能够匹配上的Pod,会自动追加Annotation和Label,以便生效ACS Pod的功能特性。

Selectors中可以包含多个Selector,在每个Selector中,您必须声明Selector的name,配置格式如下:

配置项

说明

name

Selector名称,必填不能为空。

namespaceSelector

通过Namespace Label筛选Pod。

namespaceSelector.matchLabels

通过{key,value}格式描述匹配规则。

namespaceSelector.matchExpressions

通过选择运算符列表描述匹配规则。

有效的运算符包括In、NotIn、Exists和DoesNotExist。 在In和NotIn的情况下,设置的值必须是非空的。

objectSelector

通过Pod Label筛选。

objectSelector.matchLabels

通过{key,value}格式描述匹配规则。

objectSelector.matchExpressions

通过选择运算符列表描述匹配规则。

有效的运算符包括In、NotIn、Exists和DoesNotExist。 在In和NotIn的情况下,设置的值必须是非空的。

effect

要动态追加的Annotation和Label。

Selectors的配置模板如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: eci-profile
  namespace: kube-system
data:
  selectors: |
    [
      {
        "name": "selector-demo1",
        "namespaceSelector": {
          "matchLabels": {
            "kubernetes.io/metadata.name": "dev-ns"
          }
        },
        "objectSelector": {
          "matchLabels": {
            "acs": "true"
          },
          "matchExpressions": [
            {
              "key": "usage",
              "operator": "In",
              "values": ["testing"]
            }
          ]
        },
        "effect": {
          "annotations": {
            "network.alibabacloud.com/custom-dnsconfig": "{\"servers\":[\"114.114.114.114\",\"8.8.8.8\"],\"searches\":[\"xx.com\",\"yy.com\"],\"options\":[\"ndots:2\",\"edns0\"]}"
          },
          "labels": {
            "created-by-acs": "true"
          }
        }
      }
    ]

上述模板中,名为selector-demo1的Selector可以实现以下功能:

如果Pod所属命名空间为dev-ns,并且Pod本身含有acs=true和usage=testingLabel,则该Pod会自动增加network.alibabacloud.com/custom-dnsconfig="{\"servers\":[\"114.114.114.114\",\"8.8.8.8\"],\"searches\":[\"xx.com\",\"yy.com\"],\"options\":[\"ndots:2\",\"edns0\"]}"的Annotation,以及created-by-acs=true 的Label。

重要

为了确保精确匹配,建议您在一个Selector中至少配置namespaceSelector或objectSelector中的一个。如果两者同时配置,则Pod需要同时满足两种条件才可以成功匹配;如果两者都不配置,则该effect将作用于集群内所有的ACS Pod,可能会导致不必要的影响。

如果同时配置了多个Selector,ACS将按照顺序匹配。成功匹配某个Selector后,会自动将该Selector中effect声明的Annotation和Label追加到Pod中,不会覆盖Pod原有的值。如存在重复的Annotation和Label,作用的优先级如下:

Pod原有的声明值。

最先被匹配上的Selector中effect声明的值。

后续匹配的Selector中effect声明的值。

演示示例

  1. 使用以下内容,创建一个符合selector-demo1条件的Deployment。

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      namespace: dev-ns
      labels:
        alibabacloud.com/acs: 'true'
        alibabacloud.com/compute-class: general-purpose
        alibabacloud.com/compute-qos: default  
        acs: "true"
        usage: "testing"
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        command: ["sleep", "infinity"]
        ports:
        - containerPort: 80
  2. Deployment创建完成后,查看Pod信息如下图所示。

    image

相关文章

使用自建镜像仓库创建ACS Pod 2025-04-18 18:14

拉取自建镜像仓库中的镜像时,可能会碰到因协议不同、证书认证失败或者使用了自建DNS服务器而导致镜像拉取失败的问题。本文介绍在自建镜像仓库采用HTTP协议和使用自签发证书或者自建DNS服务器的情况下,如何拉取自建镜像仓库中的镜像来创建ACS工作负载。 功能说明 拉取自建镜像仓库中的镜像时,可能会碰到E

为ACS Pod配置自定义DNS 2025-04-18 18:14

如果您需要使用自建DNS服务来解析镜像仓库以及其他应用的域名,需要将ACS Pod使用的DNS配置为您自建的DNS服务器。本文介绍如何为ACS Pod配置自定义DNS。 适用范围 以下3种情况可以通过Annotation配置自定义DNS:

使用PrivateLink解决数据中心网段IP冲突 2025-04-18 18:14

数据中心的Kubernetes集群通过专线接入ACK One注册集群后,在使用Serverless算力资源时,ack-virtual-node组件需要调用阿里云内网的OpenAPI进行资源生命周期管理。而这些内网的OpenAPI域名解析的IP地址通常都是100网段的IP,可能会导致内网中使用相同网段

静态挂载NAS存储卷 2025-04-18 18:14

对于共享数据,I/O要求较高的应用场景,您可以使用文件存储 NAS(File Storage NAS)作为持久化存储卷。本文介绍如何为应用

静态挂载OSS存储卷 2025-04-18 18:14

如果应用需要存储图片、音视频等非结构化数据,可以使用OSS作为持久化存储卷。本文介绍如何为应用静态挂载OSS存储卷,并验证OSS的共享存储和持久化存储。 注意事项 OSS是一个海量、安全、低成本、高可靠的存储空间,适合存储写入后较少修改的数据,以及非结构化数据(如图片、音视频等)。更多信息,请参见存

增加临时存储空间大小 2025-04-18 18:14

ACS Pod默认提供30 GiB的免费的临时存储空间(EphemeralStorage),如果该存储空间大小无法满足您的需求,您可以自定义增加临时存储空间大小。 背景信息 每个ACS Pod默认提供30 GiB的临时存储空间(免费),如下图所示。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号