【发布时间】:2018-04-16 22:49:20
【问题描述】:
目标是使用 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)已经尝试过了,但似乎没有用。如果配置变量可以与卷一起使用,这可能会有所帮助,但不确定如何实现这一点。
【问题讨论】:
-
你可以通过this
-
hostPath 也不能在多节点集群上工作。您绝对应该检查网络存储选项。
-
谢谢@Aditya,您能否将使用情境化为答案?
-
感谢@Flowkap,但这仍然无法解决不同开发机器上的不同路径。
-
@Peter 拥有一个用于开发和生产的配置文件是一回事,但为每个从事该项目的开发人员拥有不同的配置文件是另一回事。对于初学者来说,每个开发人员可能有不同的用户名,即“/home/myname/project/app”,因此将此文件存储在版本控制中会出现问题。如果它是相对于项目目录的,即“./app”,它可以缓解这一点。这是否有助于阐明问题?
标签: kubernetes