Shell 流浪工人节点的CoreOS Kubernetes云配置

Shell 流浪工人节点的CoreOS Kubernetes云配置,shell,vagrant,kubernetes,coreos,gogs,Shell,Vagrant,Kubernetes,Coreos,Gogs,背景 CoreOS Kubernetes在Vagrant上有一个多节点项目: 对于etcd节点,它们有一个自定义云配置,但是对于工作节点,没有自定义云配置。对于这些,Vagrant文件引用了shell脚本,其中包含一些云配置,但大部分是Kubernetes yaml: 目标 我正在尝试将NFS目录装载到coreOS worker节点上,以便在Kubernetes吊舱中使用。从我在文档和教程中读到的关于Kubernetes的内容来看,我想首先作为一个持久卷装载到节点上,就像docker上的这

背景

CoreOS Kubernetes在Vagrant上有一个多节点项目:

对于etcd节点,它们有一个自定义云配置,但是对于工作节点,没有自定义云配置。对于这些,Vagrant文件引用了shell脚本,其中包含一些云配置,但大部分是Kubernetes yaml:

目标

我正在尝试将NFS目录装载到coreOS worker节点上,以便在Kubernetes吊舱中使用。从我在文档和教程中读到的关于Kubernetes的内容来看,我想首先作为一个持久卷装载到节点上,就像docker上的这样:

我看到一些帖子说,安装在pod本身可能有问题,我想通过先安装在coreOS worker节点来避免它:

如果正确安装在吊舱中是标准方式,请告诉我,我会这样做

问题

是否有用于自定义工作节点的云配置的选项?我正要开始破解那个shell脚本,但我想我应该先检查一下。我看了一下文件,但没有找到

这是我试图添加到Vagrant文件中的coreOS云配置:


不需要在coreOS上安装NFS。库伯内特斯会在吊舱里为你做这件事:

签出nfs busybox复制控制器:

我运行了这个程序,让它将文件写入服务器。这有助于我调试应用程序。请注意,即使当您ssh到kubernetes节点并运行docker-it run/bin/bash时,nfs装载不会显示,它们也会装载在kubernetes pod中。。这就是我大部分误解发生的地方。我猜您必须在手动执行命令时将mount参数添加到该命令中

此外,我的应用程序gogs将其配置文件存储在/data中。为了让它工作,我首先将nfs安装到/mnt。然后,像在kubernetes nfs busybox示例中一样,我创建了一个命令,将/data中的所有文件夹复制到/mnt。在复制控制器yaml的
容器
节点下,我放置了一个命令:

    command:
      - sh
      - -c
      - 'sleep 300; cp -a /data /mnt; done'
这给了我足够的时间运行我的应用程序的初始配置。然后我就一直等到睡眠时间结束,文件被复制过来

然后我将挂载点更改为/data,现在应用程序在pod重新启动时从停止的位置启动。再加上外部mysql服务器,到目前为止它看起来是无状态的