Kubernetes pod 命名约定

Mig*_*uel 9 naming kubernetes

我想知道 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"
]
Run Code Online (Sandbox Code Playgroud)

如果没有约定(看起来像),是否存在通用格式:pod name+5 alpha-numeric chars为真的任何场景?

Edu*_*llo 14

命名约定:

\n\n

当您创建 Deployment 时,它会创建一个名为的副本集:

\n\n

replica-set-name=<deployment-name>-<random-string>

\n\n

反过来,replicaset创建pod,并向其中添加另一个随机字符串* :

\n\n

<replica-set-name>-<random-string>

\n\n
\n\n

例子:

\n\n
$ kubectl create deploy nginx --image=nginx\ndeployment.apps/nginx created\n\n$ kubectl scale --replicas=3 deploy/nginx \ndeployment.extensions/nginx scaled\n\n$ kubectl get replicaset\nNAME                                     DESIRED   CURRENT   READY   AGE\nnginx-554b9c67f9                         3         3         3       96s\n\n$ kubectl get po\nNAME                                           READY   STATUS    RESTARTS   AGE\nnginx-554b9c67f9-c5cv4                         1/1     Running   0          74s\nnginx-554b9c67f9-hjkjq                         1/1     Running   0          74s\nnginx-554b9c67f9-wbwdm                         1/1     Running   0          2m7s\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

* 根本不是随机的:

\n\n

事实上,“随机字符串”根本不是完全随机的。

\n\n

为了防止 \xe2\x80\x9c 坏词 \xe2\x80\x9d,元音和数字013从函数中删除rand.String(参考 PR:#37225#50070)。

\n\n

因此,<random-string>将由以下字母数字字符的组合组成:bcdfghjklmnpqrstvwxz2456789

\n

  • 特别感谢您提供有关避免“脏话”的额外信息! (2认同)

Rah*_*R A 6

如果使用部署,则命名约定如下:

|--- 部署:<名称>
? -----?? 副本集:<名称>-<rs>
? --------?? Pod:<名称>-<rs>-<RandomString>


Rad*_*nka 4

如果您使用部署,为了人类操作员的缘故,您会发现您的 Pod 名称为<replicaset>-<[0-9a-z]{5}>副本集所在的位置<deployment>-<id>。对于 kubernetes 本身来说,pod 的命名是无关紧要的。