问题描述
我想使用 Prometheus 映像将容器部署为本地部署的一部分。通常必须使用 volume and bind-mount 运行容器才能将配置文件 (prometheus.yml
) 放入容器:
docker run \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
在使用 Skaffold 时如何通过 Kubernetes 实现这一点?
解决方法
您的 Kubernetes 配置将是这样的,
您可以指定端口号和卷安装。挂载的重要部分是 volumeMounts
和 volumes
。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-prom
spec:
selector:
matchLabels:
app: my-prom
template:
metadata:
labels:
app: my-prom
spec:
containers:
- name: my-prom
image: prometheus:latest
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 9090
volumeMounts:
- name: prom-config
mountPath: /path/to/prometheus.yml
volumes:
- name: prom-config
hostPath:
path: /etc/prometheus/prometheus.yml
---
apiVersion: v1
kind: Service
metadata:
name: my-prom
spec:
selector:
app: my-prom
ports:
- port: 9090
targetPort: 9090
将 Kubernetes 配置文件保存在一个文件夹中,并将下面的配置添加到 skaffold.yaml
并带有 K8s 配置文件的路径,
deploy:
kubectl:
manifests:
- k8s/*.yaml