我想知道Kubernetes中是否有适当的生成pod名称的命名约定。通过生成的pod名称,我指的是kubectl get pods
中显示的名称,或者,例如,通过查询heapster api:
$ curl -s http://192.168.99.100:32416/api/v1/model/namespaces/kube-system/pods
[
"kube-addon-manager-minikube",
"kube-dns-v20-8gsbl",
"kubernetes-dashboard-tp9kc",
"heapster-kj8hh",
"influxdb-grafana-stg3s"
]
$ curl -s http://192.168.99.100:32416/api/v1/model/namespaces/default/pods
[
"my-nginx-2723453542-065rx"
]
如果没有约定(如图所示)是否存在常见格式:pod name
+ 5 alpha-numeric chars
为真的情景?
答案 0 :(得分:2)
如果您使用部署,为了操作人工,您会发现您的广告连播名称为<replicaset>-<[0-9a-z]5>
,其中replicaset为<deployment>-<id>
。对于kubernetes而言,pod的命名是无关紧要的。
答案 1 :(得分:2)
如果您使用部署,则命名约定如下:
| ---部署:&lt;名称&gt;
│-----
└─副本集:&lt; name&gt; - &lt; rs&gt;
│--------
└─Pod:&lt; name&gt; - &lt; RS&GT; - &LT; RandomString&gt;
答案 2 :(得分:0)
创建展开时,它会创建一个名为 replicaset 的:
replica-set-name
= <deployment-name>-<random-string>
复制包依次创建一个容器,向它们添加另一个随机字符串* :
<replica-set-name>-<random-string>
$ kubectl create deploy nginx --image=nginx
deployment.apps/nginx created
$ kubectl scale --replicas=3 deploy/nginx
deployment.extensions/nginx scaled
$ kubectl get replicaset
NAME DESIRED CURRENT READY AGE
nginx-554b9c67f9 3 3 3 96s
$ kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-554b9c67f9-c5cv4 1/1 Running 0 74s
nginx-554b9c67f9-hjkjq 1/1 Running 0 74s
nginx-554b9c67f9-wbwdm 1/1 Running 0 2m7s
实际上,“随机字符串”根本不是完全随机的。
为了防止出现“坏话”,从rand.String
函数中删除了元音和数字 0 , 1 和 3 (供参考的PR:#37225和#50070)。
因此,<random-string>
将由以下字母数字字符组成:bcdfghjklmnpqrstvwxz2456789
。