【问题标题】:How to use pod hostname in subPathExpr filed in volume for kind as Deployment in kubernetes v1.13.0如何在卷中的 subPathExpr 中使用 pod 主机名作为 kubernetes v1.13.0 中的部署类型
【发布时间】:2019-04-12 17:56:57
【问题描述】:

当 kind 为 Deployment 时,无法在卷中使用 subPathExpr 或 subPath。

尝试使用子路径提供一些环境变量,但不是创建具有值的文件夹,而是使用 ${xyz} 创建的

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: abc
spec:
  replicas: 1
  selector:
    matchLabels:
      app: abc
  template:
    metadata:
      labels:
        app: abc
    spec:
        env:
        - name: NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        volumeMounts:
        - mountPath: /opt/logs
          name: abc
          subPath: $(NAME)
      volumes:
      - name: abc
        hostPath:
          path: /opt/abc
          type: Directory

我想用 pod 主机名创建卷目录,但无法创建

示例: 如果 pod 名称是 xyzservice-3216544-fv4

我想创建像 /opt/abc/xyzservice-3216544-fv4 这样的卷目录

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您的 Kubernetes 集群版本是多少?
    Using subPath with expanded environment variables 是 v1.14 中的新 FEATURE(alpha)

    【讨论】:

    • 感谢您的回复。我使用的版本是 1.13,您提供的链接将支持 kind:Pod,我需要 kind:Deployment
    • Pod 是 K8S 最小的工作负载单元,Deployment 和 ReplicaSet 是 K8S 的工作负载控制器。当你创建Deployment时,K8S会为你创建Deployment、ReplicaSet和Pods,控制关系为pods,由ReplicaSet控制; ReplicaSetDeployment控制。pod是deployment的Subset,pod的上下文在Deployment yaml文件中用.spec.spec定义。
    • 建议您将Kubernetes集群升级到v1.14并开启alpha功能,再试一次。
    猜你喜欢
    • 2019-11-27
    • 2017-07-05
    • 2019-01-27
    • 1970-01-01
    • 2021-04-08
    • 2021-07-23
    • 1970-01-01
    • 2020-08-29
    • 2020-12-01
    相关资源
    最近更新 更多