如何使用AKS挂载本地卷hostPath?

时间:2020-02-13 09:56:41

标签: kubernetes

我试图创建一个Kubernetes pod并从本地主机路径安装一个卷。我正在使用Azure Kubernetes群集。以下是我用于创建Pod的Yaml

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80
    volumeMounts:
    - mountPath: /opt/myfolder
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /Users/kkadam/minikube/myfolder
      # this field is optional

myfolder下的文件很少,我想在容器内使用。文件存在于本地卷中,但不存在于容器中。

可能是个问题吗?

2 个答案:

答案 0 :(得分:2)

您不能将本地路径添加到在AKS上运行的容器。您必须在计划POD的特定节点上添加文件。

如果两者都在同一节点POD和文件上,则可以将文件作为卷装入容器并使用。

但是,如果将POD计划到另一个节点,则将无法访问容器中的文件。

如果由于某种原因您的节点在自动缩放过程中重新启动或删除,则可能会丢失数据。

答案 1 :(得分:1)

根据您在评论和配置中所说的内容,尤其是路径/Users/kkadam/minikube/myfolder(通常是Mac OS路径)来看,您似乎正在尝试将本地卷(可能是mac)挂载到吊舱已部署在AKS上。
那是问题。

为了使其正常运行,您需要将要尝试挂载的文件放在运行Pod的节点上(位于AKS中)。