荚名字为什么必须通过kubernetes部署创建时附加到他们的名字5个随机字母数字字符?是否有可能摆脱他们,使豆荚名不会改变?我经常删除和创建部署和宁愿荚名不会改变。
更新:我想有相同的名字,因为我不断地删除/重新创建相同的部署,如果名称不改变,那么我可以很快重新使用旧命令给exec进/看到容器的日志。
这是部署如何工作的,每次死亡荚,ReplicaSet创建具有不同名称吊舱,以匹配期望的状态并连接到窗格名称给他们唯一的名称随机数。
无论你正在努力实现的,因为它们是用于无状态应用程序是不可能的部署对象。当你想申请的保存状态(名称),这当然是可能的StatefulSet。
所以,如果你使用StatefulSet对象来管理副本,每个吊舱将有一定的命名规则,e中创建。 G。 POD_NAME-1,POD_NAME-2等我。即指数将appeneded到窗格名称。此外,当荚死了,新的吊舱将具有相同名称的创建。
你想达到敖StatefulSet的理想的用例。去吧。
原因有荚果名称随机的字母数字:
当我们创建一个deployment
,它不会直接创建荚(相匹配的副本数)。
如果你的用例是经常使用的旧命令,然后去为Statefulset
不是很好的解决方案。 Statefulsets是heavy weight
(有序部署,下令终止,唯一的网络名称),他们是专门设计以保持跨越重启(与持续性的体积组合)的状态。
有一些工具,您可以使用:
轻量级解决问题的方法:
kubectl get pods -l app=my_app,app_type=server
NAME READY STATUS RESTARTS AGE
my-app-5b7644f7f6-4hb8s 1/1 Running 0 22h
my-app-5b7644f7f6-72ssz 1/1 Running 0 22h
在此之后,我们可以使用一些魔法的bash得到什么,我们要象下面
最后的命令:
kubectl get pods -l app=my_app,app_type=server -o name | rg "pod/" -r "" | head -n 1 | awk '{print "kubectl logs " $0}' | bash
说明:
kubectl get pods -l app=my_app,app_type=server -o namenames
pod/my-app-5b7644f7f6-4hb8s
pod/my-app-5b7644f7f6-72ssz
ripgrep
或sed
(RG “荚/” -R “”)head -n 1
荚如果部署从部署目标吊舱,类型:部署,然后部署控制器附加一个唯一的名称荚是具体部署的一部分。这是部署控制器如何查找各自部署的所有相关豆荚。这是需要滚动升级,回滚功能