【问题标题】:Run command on Minikube startup在 Minikube 启动时运行命令
【发布时间】:2019-01-29 16:49:56
【问题描述】:

我正在使用 Minikube 在我的本地机器上使用 Kubernetes,并且想在启动后(最好在 Pod 启动之前)在 VM 上运行命令。我可以使用minikube ssh 手动运行它,但是每次重启后都会有点痛苦,而且很难包装在脚本中。

有没有简单的方法可以做到这一点?

在我的例子中,命令是这样的,以便 VM 上的路径与我的主机上的路径匹配:

sudo mount --bind /hosthome/<user> /home/<user>

【问题讨论】:

    标签: kubernetes minikube


    【解决方案1】:

    也许您可以传递给minikube start 的标志对您的情况有用:

      --mount                          This will start the mount daemon and automatically mount files into minikube
      --mount-string string            The argument to pass the minikube mount command on start (default "/home/user:/minikube-host")
    

    编辑: 也许您可以编写启动 minikube 的脚本,例如:

    minikube start && ssh -t -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) "sudo mount --bind /hosthome/<user> /home/<user>"
    

    这将启动 minikube 并在启动后使用 SSH 发出绑定命令

    【讨论】:

    • 这就是我以前使用过的,但是在用于--mount 选项的 9p 文件系统上遇到了很多问题,当使用用于@987654325 的 Virtualbox 挂载时我没有遇到这些问题@文件夹。
    • 我尝试了一些想法,但似乎没有比使用 minikube 提供的@Jakub 提供的更好的方法了。
    • @Ralf 我添加了回答一些对您的情况有用的问题
    • 谢谢,这似乎有效。不知道 ssh 密钥,它比基于密码的 ssh 登录更容易自动化。
    【解决方案2】:

    如果您需要在 minikube 的每次启动/停止时运行命令,您可以将其放在脚本 /var/lib/boot2docker/bootlocal.sh 中,该脚本将在每次 VM 启动时运行并保持不变。 因此,为了将您的命令放入 bootlocal.sh,请从您的主机运行:

    minikube ssh 'echo "sudo mount --bind /hosthome/<user> /home/<user>" | sudo tee -a /var/lib/boot2docker/bootlocal.sh'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2020-12-31
      • 2013-05-25
      • 1970-01-01
      • 2018-12-31
      • 2016-09-10
      • 2016-09-24
      • 2014-11-25
      相关资源
      最近更新 更多