在微服务架构中,K8s集群中可能会部署大量的应用,且不同的应用可能存在多个版本,此时集群中会出现大量的Pod。在EDAS控制台对应用配置Label,能够为该应用的所有Pod配置标签,以键值对的形式对一组Pod进行标识。结合标签选择器,能够在大量的Pod中筛选出具有特定标签标识的一组Pod,便于分组管理。本文介绍在创建或部署应用时,如何为应用的Pod配置标签。
操作步骤
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。
在应用总览页面右上角选择 。
在选择部署模式页面的其中一种部署模式区域的右上角单击开始部署。
说明本文以单批发布为例来说明操作步骤。
在单批发布页面,修改部署参数,并展开标签(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调度至同一节点上。
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。
在应用总览页面右上角选择 。
在选择部署模式页面,选择其中一种部署模式,单击开始部署。
说明本文以单批发布为例来说明操作步骤。
在单批发布页面,修改应用的环境和部署包信息后,展开调度规则。
选择模式配置为自定义配置,在应用亲和性页签添加规则,参数配置如下:
拓扑域选择
kubernetes.io/hostname
。应用标签名配置为
demo-app-name
。操作符号选择
In
。应用标签值配置为
sc-server-demo
。
展开标签(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所在节点为同一节点。
相关文档
部署应用时,关于应用亲和性和反亲和性调度规则的更多信息,请参见配置调度规则。