配置标签

在微服务架构中,K8s集群中可能会部署大量的应用,且不同的应用可能存在多个版本,此时集群中会出现大量的Pod。在EDAS控制台对应用配置Label,能够为该应用的所有Pod配置标签,以键值对的形式对一组Pod进行标识。结合标签选择器,能够在大量的Pod中筛选出具有特定标签标识的一组Pod,便于分组管理。本文介绍在创建或部署应用时,如何为应用的Pod配置标签。

操作步骤

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 应用总览页面右上角选择部署 > 部署

  4. 选择部署模式页面的其中一种部署模式区域的右上角单击开始部署

    说明

    本文以单批发布为例来说明操作步骤。

  5. 在单批发布页面,修改部署参数,并展开标签(Label)配置,配置自定义标签键值对,完成配置后单击确定

    说明

    标签值需设置为该应用的应用名称。

    等待应用部署成功后,通过kubectl命令根据指定标签键值查询Pod。

    kubectl get pod -l demo-app-name=sc-server-demo

    结果示例如下:

    NAME                                        READY   STATUS    RESTARTS   AGE
    sc-server-demo-group-1-1-5795d5487c-****   2/2     Running   0          2m58s

基于Label实现应用亲和性

在部署K8s集群中的应用时,通常需要考虑不同组件间的依赖关系。例如,将某些Pod调度到同一拓扑域下,或不能将某些Pod调度到同一拓扑域。此时为应用配置Label可以辅助配置自定义的应用亲和性和反亲和性。下面将介绍如何通过Label实现应用亲和性。

前提条件

已部署了标签为demo-app-name=sc-server-demo的应用。

操作步骤

在另一个应用中配置应用亲和性,将两个应用的Pod调度至同一节点上。

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 应用总览页面右上角选择部署 > 部署

  4. 选择部署模式页面,选择其中一种部署模式,单击开始部署

    说明

    本文以单批发布为例来说明操作步骤。

  5. 单批发布页面,修改应用的环境和部署包信息后,展开调度规则

    选择模式配置为自定义配置,在应用亲和性页签添加规则,参数配置如下:

    • 拓扑域选择kubernetes.io/hostname

    • 应用标签名配置为demo-app-name

    • 操作符号选择In

    • 应用标签值配置为sc-server-demo

  6. 展开标签(Label)配置,配置自定义标签键值对demo-app-name=sc-client-demo,完成配置后单击确定

    等待应用部署成功后,通过kubectl命令检查两个应用Pod所在的节点。

    kubectl get pod -l demo-app-name=sc-client-demo -o wide
    kubectl get pod -l demo-app-name=sc-server-demo -o wide

    结果示例如下:

    NAME                                        READY   STATUS    RESTARTS   AGE   IP            NODE                          NOMINATED NODE   READINESS GATES
    sc-client-demo-group-1-1-5c5cbb9889-****   2/2     Running   0          24s   10.85.***.*4   cn-hangzhou.192.168.AAA.BBB   <none>           <none>
    NAME                                        READY   STATUS    RESTARTS   AGE   IP            NODE                          NOMINATED NODE   READINESS GATES
    sc-server-demo-group-1-1-5795d5487c-****   2/2     Running   0          35m   10.85.***.*3   cn-hangzhou.192.168.AAA.BBB   <none>           <none>

    从结果中可以看到两个应用Pod所在节点为同一节点。

相关文档

部署应用时,关于应用亲和性和反亲和性调度规则的更多信息,请参见配置调度规则