Kubernetes 如何使用Skaffold挂载docker配置文件?

Kubernetes 如何使用Skaffold挂载docker配置文件?,kubernetes,skaffold,Kubernetes,Skaffold,我想使用映像作为本地部署的一部分来部署容器。通常,必须使用运行容器才能将配置文件(prometheus.yml)放入容器中: docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus 在使用Skafold时,如何使用Kubernetes实现这一点?您的Kubernetes配置如下所示, 您可以指定端口号和卷装载。安装的重要

我想使用映像作为本地部署的一部分来部署容器。通常,必须使用运行容器才能将配置文件(
prometheus.yml
)放入容器中:

docker run \
    -p 9090:9090 \
    -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
    prom/prometheus

在使用Skafold时,如何使用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

你的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

根据您的操作系统,您可能需要做一些额外的工作。例如,要在macOS上使用Minikube,您需要将macOS文件系统装入Minikube:Right。我记得在使用Docker for Windows时,文件系统路径也必须通过UI挂载。@Bala I get
您是否试图将目录挂载到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型。
因为感兴趣的文件是配置文件,所以我使用的是
ConfigMap
。根据您的操作系统,您可能需要做一些额外的工作。例如,要在macOS上使用Minikube,您需要将macOS文件系统装入Minikube:Right。我记得在使用Docker for Windows时,文件系统路径也必须通过UI挂载。@Bala I get
您是否试图将目录挂载到文件上(反之亦然)?检查指定的主机路径是否存在并且是预期的类型。
因为感兴趣的文件是配置文件,所以我使用的是
ConfigMap