【问题标题】:CoreOS-Kubernetes Cloud Config for Vagrant Worker NodeVagrant Worker 节点的 CoreOS-Kubernetes 云配置
【发布时间】:2016-01-10 21:25:18
【问题描述】:

背景

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

https://github.com/coreos/coreos-kubernetes https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html

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

https://github.com/coreos/coreos-kubernetes/blob/master/multi-node/generic/worker-install.sh

目标

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

http://www.emergingafrican.com/2015/02/enabling-docker-volumes-and-kubernetes.html

我看到一些帖子说安装在 pod 本身可能会出现问题,并且希望通过首先安装在 coreOS 工作节点上来避免它:

Kubernetes NFS volume mount fail with exit status 32

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

问题

是否有为工作节点自定义云配置的选项?我即将开始破解那个 shell 脚本,但我想我应该先检查一下。我浏览了文档,但找不到任何文档。

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

https://coreos.com/os/docs/latest/mounting-storage.html#mounting-nfs-exports

【问题讨论】:

    标签: shell vagrant kubernetes coreos gogs


    【解决方案1】:

    不需要在 coreOS 上挂载 NFS。 Kubernetes 会在 pod 中为您完成:

    http://kubernetes.io/v1.1/examples/nfs/README.html

    检查 nfs-busybox 复制控制器:

    http://kubernetes.io/v1.1/examples/nfs/nfs-busybox-rc.yaml

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

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

        command:
          - sh
          - -c
          - 'sleep 300; cp -a /data /mnt; done'
    

    这给了我足够的时间来运行我的应用程序的初始配置。然后我就等到休眠时间到了,把文件复制过来。

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

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 2019-10-12
      • 2019-09-10
      • 2015-11-10
      相关资源
      最近更新 更多