首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Client-go -在Kubernetes中使用client-go创建对象之前获取生成的名称

Client-go -在Kubernetes中使用client-go创建对象之前获取生成的名称
EN

Stack Overflow用户
提问于 2020-10-06 04:49:36
回答 1查看 256关注 0票数 1

假设我有这样的代码来生成新的pod

代码语言:javascript
复制
req := &api.Pod{
        TypeMeta: unversioned.TypeMeta{
            Kind:       "Pod",
            APIVersion: "v1",
        },
        ObjectMeta: api.ObjectMeta{
            GenerateName: "name-, // need to get that name, before creating an object
        },
        Spec: api.PodSpec{
            Containers: []api.Container{
                {
                    Name:  "nginx",
                    Image: "nginx",
                    Env:   []corev1.EnvVar{} // pass here the generated name,

                },
            },
        },
}
...
// Do some work on the generated name, before creating the resource in Kubernetes cluster
...
err := client.Create(context.Background(), req)

是否可以在创建对象之前获取生成的名称?或者可以将生成的名称存储在同一对象的env中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-06 05:11:07

生成的名称似乎是与apiServer一起创建的。参见Issue commentKubernetes API Concepts - Generated values

建议不要依赖它。通常,标签和选择器在Kubernetes生态系统中更为常见。

代码语言:javascript
复制
Env:   []corev1.EnvVar{} // pass here the generated name,

您可以使用向下API来实现此目的。示例:

代码语言:javascript
复制
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64216003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档