为什么路径没有挂载?

时间:2019-11-02 20:34:01

标签: kubernetes

我已经创建了清单文件,如下所示:

apiVersion: v1
kind: Pod
metadata:
  name: kuard
spec:
  volumes:
    - name: "kuard-data"
      hostPath:
        path: "/home/developer/kubernetes/exercises"
  containers:
    - image: gcr.io/kuar-demo/kuard-amd64:1
      name: kuard
      volumeMounts:
        - mountPath: "/data"
          name: "kuard-data"
      ports:
        - containerPort: 8080
          name: http
          protocol: TCP

如您所见,主机路径为:

path: "/home/developer/kubernetes/exercises"

mountPath是:

mountPath: "/data"

我已经在文件夹hello.txt中创建了一个/home/developer/kubernetes/exercises文件,当我通过kubectl exec -it kuard ash进入广告连播时,找不到文件hello.txt

https://pid.cz/o-systemu/opendata/

文件在哪里?

1 个答案:

答案 0 :(得分:2)

kind使用Docker容器来simulate Kubernetes节点。因此,当您在主机(Ubuntu计算机)上创建文件时,容器将不会自动访问它们。 (当使用macos或Windows且docker在单独的虚拟机中运行时,这变得更加复杂...)

我假设在kind-docker-nodes内部有一些可见的共享文件夹,但是我找不到记录的文件。

您可以使用docker exec -it kind-control-plane /bin/sh从容器内部验证docker节点的文件系统内容,然后使用常规工具。

如果您需要使开发计算机中的内容可用,则可能需要看一下ksync:https://github.com/vapor-ware/ksync