在Kubernetes配置中使用相对路径

时间:2018-04-16 22:49:20

标签: kubernetes

目标是使用Kubernetes协调生产和本地开发环境。问题是hostPath不适用于相对路径值。这导致每个开发人员的机器上的配置文件略有不同,以适应不同的项目位置(即"/my/absolute/path/to/the/project"):

apiVersion: v1
kind: Service
metadata:
  name: some-service
  labels:
    app: app
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: app
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: some-deploy
spec:
  selector:
    matchLabels:
      app: app
  replicas: 1
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: app
        image: nginx:1.13.12-alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - name: vol_example
          mountPath: /var/www/html
      volumes:
        - name: vol_example
          hostPath:
            path: "/my/absolute/path/to/the/project"
            type: Directory

如何在Kubernetes配置文件中使用相对路径?已经尝试过变量替换(例如$(PWD)/project),但似乎没有效果。如果配置变量可以使用卷,这可能有所帮助,但不确定如何实现这一点。

1 个答案:

答案 0 :(得分:5)

如上所述,here kubectl永远不会支持变量替换。

您可以为自己的应用创建helm图表(yaml)。它支持yaml模板变量(在各种其他功能中)。因此,您可以根据开发或生产传递hostPath参数。