首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes清单中hostPath中的POD特定文件夹

Kubernetes清单中hostPath中的POD特定文件夹
EN

Stack Overflow用户
提问于 2018-07-09 15:55:59
回答 2查看 403关注 0票数 0

我是Kubernetes的新手,需要一些帮助。

我使用的是StatefulSet和3个副本。有2个工作节点。

我希望为每个副本提供单独的hostPath,而不是硬编码的hostPath。此外,hostPath在工作节点上是“本地”的。

例如:

代码语言:javascript
复制
  volumeMounts:
    - mountPath: /usr/local/store
      name: store
volumes:
  - name: store
    hostPath:
      path: /space/myapp/$(POD_NAME)

这里的POD_NAME是app-0,app-1,app-2 (3个副本)。

在多个工作节点上创建/space/myapp/app-0、/space/myapp/app-1、/space/myapp/app-2就可以满足我们的需要。

我做了一些阅读,没有找到任何明显的解决方案。

一种解决方案是不使用副本,并使用自己的硬编码hostPath创建3个单独的PODs。但这并不可取。

您能指导我,Kubernetes中有什么可以帮助我实现这一点吗?感谢任何帮助或指导。

EN

回答 2

Stack Overflow用户

发布于 2018-07-10 13:56:43

你想要的是一个带有PVC templatesStatefulSet。如果您需要hostPath,您的处境肯定会更糟,但是正式的CSI或以前的FlexVolume支持都可以帮助您解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2018-07-11 16:16:52

不会讨论您是否需要使用部署与状态集与PVC模板,因为这超出了问题的范围-尽管它可能有助于首先研究出来。

一种可能的解决方案是自己管理副本,而不是使用Kubernetes的副本功能(因为“一切”都不会被复制)。将问题标记为"kubernetes- helm“后,我假设您可以使用helm模板。

您想要的功能可以通过以下方式来实现:

  1. values.yaml文件中定义所有非公共pod属性。

指示性代码:

代码语言:javascript
复制
chartname:
  pods:
  - name: pod1
    path: volumeHostpathForPod1
  - name: pod2
    path: volumeHostpathForPod2
  ...etc

  1. 在您的chartname/templates/pod.yaml (或等效文件)

代码语言:javascript
复制
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: "statefulset"
...(other stateful set properties)
spec: #stateful set specs
  template:
    spec: #pod(s) specs
      containers:
{{- range .Values.pods }}
      - ... (common pod properties) 
        name: "pod{{ .name }}"
        volumeMounts:
        - mountPath: /usr/local/store
        name: "storeForPod{{ .name }}"
{{- end }}
      volumes:
{{- range .Values.pods }}
      - name: "storeForPod{{ .name }}"
        hostPath:
          path: "/space/myapp/{{ .path }}"
{{- end }}

  1. 使用helm生成最终的Kubernetes规范。例如:命令:helm install <deployment-name> ./chartname -f values.yaml <--dry-run> <--debug>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51240558

复制
相关文章

相似问题

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