做项目时发现以前环境里的pod都有名为app的label,但是现场环境里的pod却没有,导致某些以label为app来筛选的业务查询不到对应的pod。
第一种方法-直接给pod打标签
在k8s中,给组件打标签的语法都很类似:
kubectl label deployment/pod/其他 xxxxx -n 命名空间 标签名=标签值 --overwrite
那我给名为imagemanagement-7698dfccc4-vvlhq的pod增加一个标签:
kubectl label pod imagemanagement-7698dfccc4-vvlhq -n testns app=imagemanagement --overwrite
观察业务,发现已经生效,通过label为app来筛选的业务可以查询到该pod了。
第二种方法-更改deployment
在k8s中,我们使用deployment来管理pod,即使当前pod死掉,也会立刻拉起新的pod,使实例数和deployment里配置的一致。
按照方法一只更新当前pod不是长久之计,所以建议使用第二种方法:更改deployment。
kubectl -n testns edit deployments imagemanagement
在编辑操作中,给spc下的template里添加对应label,如图所示:

本文介绍了两种在Kubernetes环境中给Pod添加label的方法:直接给现有Pod打标签和通过修改Deployment配置。第一种方法适用于临时操作,而第二种方法更持久,能确保新创建的Pod也带有指定label。
最低0.47元/天 解锁文章
7978

被折叠的 条评论
为什么被折叠?



