Kubernetes pod命名约定

时间:2017-09-13 18:27:44

标签: kubernetes naming

我想知道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为真的情景?

3 个答案:

答案 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