You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定ConfigMap提取证书文件并应用于其他ConfigMap及Pod

如何从指定ConfigMap提取证书文件并应用于其他ConfigMap及Pod

别担心,我来一步步教你怎么操作,全程用kubectl就能搞定所有流程:

第一步:将目标ConfigMap中的证书导出到本地文件

你可以用kubectl的jsonpath或者jq工具来提取kubelet-serving-ca里的ca-bundle.crt内容,输出到本地文件:

方式一:用kubectl jsonpath(无需额外工具)

kubectl get configmap kubelet-serving-ca -n openshift-kube-apiserver -o jsonpath='{.data.ca-bundle\.crt}' > ca-bundle.crt

注意这里的\.是转义符号,用来处理证书文件名里的点,避免被jsonpath当成路径分隔符。

方式二:用jq工具(如果你的环境安装了jq)

kubectl get configmap kubelet-serving-ca -n openshift-kube-apiserver -o json | jq -r '.data["ca-bundle.crt"]' > ca-bundle.crt

执行完后,本地就会生成一个ca-bundle.crt文件,你可以用cat ca-bundle.crt检查内容是否正确。

第二步:将证书导入到目标ConfigMap

接下来把本地的证书文件导入到你需要的ConfigMap里,分两种情况:

情况1:创建新的ConfigMap

kubectl create configmap my-target-ca -n <你的目标命名空间> --from-file=ca-bundle.crt=./ca-bundle.crt

记得把<你的目标命名空间>替换成实际要使用的命名空间,比如你的应用所在的namespace。

情况2:更新已存在的ConfigMap

如果已经有一个要更新的ConfigMap,可以用dry-run生成yaml再应用:

kubectl create configmap my-target-ca -n <你的目标命名空间> --from-file=ca-bundle.crt=./ca-bundle.crt --dry-run=client -o yaml | kubectl apply -f -

这样就能覆盖原有ConfigMap里的对应证书内容。

第三步:让Pod挂载并使用这个证书文件

要让Pod能访问到这个证书,需要在Pod的部署配置里添加volume和volumeMounts配置,示例片段如下:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
  namespace: <目标命名空间>
spec:
  containers:
  - name: my-app-container
    image: your-app-image:tag
    # 挂载证书到Pod内的指定路径
    volumeMounts:
    - name: ca-cert-volume
      mountPath: /path/in/pod/ca-bundle.crt  # 替换成你Pod里需要的实际路径
      subPath: ca-bundle.crt  # 只挂载单个文件,避免覆盖整个目录
  # 定义要挂载的ConfigMap卷
  volumes:
  - name: ca-cert-volume
    configMap:
      name: my-target-ca  # 对应刚才创建/更新的ConfigMap名称

配置完成后,重新部署Pod,就能在指定的/path/in/pod/ca-bundle.crt路径下访问到证书文件了。

额外小贴士

  • 如果是在OpenShift环境中,默认的ServiceAccount通常有访问同namespace下ConfigMap的权限,要是遇到权限问题,可以检查一下Role/RoleBinding配置。
  • 导出证书后可以先验证下内容,避免出现编码或截断问题。

备注:内容来源于stack exchange,提问作者Syirtblplmj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:20:32