繁体   English   中英

Kubernetes Java 客户端:无法将现有的 configMap 挂载到 Pod

[英]Kubernetes Java client: cannot mount an existing configMap to a Pod

我正在开发一个 Java 应用程序,该应用程序使用官方 Kubernetes ZD518178D3751A2 客户端创建一些 Kubernetes 作业。 每个 Job 都使用其配置目录,该目录已作为 configMap 存在于集群中。 (这个 configMap 是使用kubectl create configmap {name} --from-file=/...

使用Java客户端,我成功创建了一个V1ConfigMap object,它引用了一个特定的configMap,我还发现V1Volume.setConfigMap()会将V1ConfigMapVolumeSource转换成容器可以挂载的V1Volume

但是,我找不到通往 map V1ConfigMapV1ConfigMapVolumeSource的方法。

这是我的代码:

public void setConfigMap(V1ConfigMap cm, String mountPath){
       
    V1ConfigMapVolumeSource volSource = new V1ConfigMapVolumeSource();
        
    //Some additional mappings are needed here.
    //volSource = ...(cm)

    //create V1Volume from V1ConfigMapVolumeSource
    String volName = "appSetting";
    V1Volume settingVol = new V1Volume().name(volName);
    settingVol.setConfigMap(volSource);

    //create V1VolumeMount
    V1VolumeMount volumeMount = new V1VolumeMount();
    volumeMount.setMountPath(mountPath);
    volumeMount.setName(volName);

    //set created objects to the Job
    job.getSpec().getTemplate().getSpec().addVolumesItem(settingVol);
    job.getSpec().getTemplate().getSpec().getContainers().get(0).addVolumeMountsItem(volumeMount);
}

有谁知道解决这个问题的方法,还是我的方法完全错误?

正如V1ConfigMapVolumeSource文档中所述,有一个name参数(类型String ),它是referent 的名称

要在ConfigMap中链接ConfigMapVolumeSource ,只需将ConfigMap的名称放在 name 参数中,就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM