Использовать относительные пути в конфигурации 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
Как уже упоминалось здесь kubectl
никогда не будет поддерживать подстановку переменной.
Вы можете создать штурвал диаграмму для вашего приложения (YAML). Он поддерживает переменные шаблона yaml (среди других функций). Таким образом, вы сможете передать параметр hostPath
на основе разработки или производства.