Kubernetes将主机路径安装到容器内的特定位置

时间:2018-03-29 17:12:57

标签: linux docker kubernetes docker-compose

我试图将一堆docker-compose文件翻译成kubernetes yamls。我使用了kompose,这让我有所帮助,但是我被卡在多个容器的一个特定部分上。

这是其中一个容器。请注意,泊坞窗容器正在country --------- india japan mexico afghanistan australia hungary 挂载到/u/data/. . .。这实际上是必要的,因为mysql目录包含数据库和配置。

/var/lib/mysql

在Kubernetes中实现这一目标的正确方法是什么?请注意,对于k8,我将安装一个nfs卷(这仅用于测试目的)。

我确实调查了hostpath,但到目前为止没有运气。

1 个答案:

答案 0 :(得分:2)

声明Pod时,请指定spec.volumes处的音量,然后指定spec.containers[*].volumeMounts处的音量:

apiVersion: v1
kind: Pod
metadata:
  name: server1-backend-mysql
spec:
  containers:
  - image: mysql
    name: mysql
    volumeMounts:
    - mountPath: /var/lib/mysql
      name: mysql-data
  volumes:
  - name: mysql-data
    hostPath:
      path: /u/data/...
      type: Directory

声明DeploymentStatefulSet(您应该而不是声明Pod)时,将相应的配置移至spec.template.spec.volumes和{{1 }}。 有关详细信息,请查看documentation

作为与您的问题无关的旁注:如果您计划从NFS卷运行MySQL,请记住可以从NFS运行MySQL,但not something that MySQL is really optimized for。请务必相应地配置MySQL服务器,并检查您的环境是否允许您使用网络块设备(而不是网络文件系统),如Ceph RBD卷或类似设备。