Kubernetes 在Minikube启动时运行命令

Kubernetes 在Minikube启动时运行命令,kubernetes,minikube,Kubernetes,Minikube,我使用Minikube在本地机器上处理Kubernetes,并且希望在启动之后(最好在POD启动之前)在VM上运行命令。我可以使用minikube ssh手动运行它,但每次重启后都会有点麻烦,而且很难用脚本包装 有没有一个简单的方法可以做到这一点 本例中的命令如下,以便VM上的路径与主机上的路径匹配: sudo mount --bind /hosthome/<user> /home/<user> minikube ssh 'echo "sudo mount --bind

我使用Minikube在本地机器上处理Kubernetes,并且希望在启动之后(最好在POD启动之前)在VM上运行命令。我可以使用
minikube ssh
手动运行它,但每次重启后都会有点麻烦,而且很难用脚本包装

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

本例中的命令如下,以便VM上的路径与主机上的路径匹配:

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

在您的情况下,可以传递到
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 start&&ssh-t-i~/.minikube/machines/minikube/id_rsa docker@$(minikube ip)“sudo mount--bind/hosthome//”

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

在您的情况下,可以传递给
minikube启动的标志可能会很有用:

  --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 start&&ssh-t-i~/.minikube/machines/minikube/id_rsa docker@$(minikube ip)“sudo mount--bind/hosthome//”

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

如果需要在minikube的每个启动/停止上运行命令,可以将其放入脚本/var/lib/boot2docker/bootlocal.sh中,该脚本将在每个VM启动上运行并持久化。 因此,要将命令放入bootlocal.sh,请从主机运行:

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

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

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

这是我以前使用过的,但是用于
--mount
选项的9p文件系统遇到了很多问题,当使用用于
/hosthome
文件夹的Virtualbox挂载时,我没有得到它。我尝试了一些想法,但似乎没有比使用minikube实现您想要的更好的方法了,除了@Jakub provided.@Ralf我补充了一些对您的情况有用的答案谢谢,这似乎很有效。我不知道ssh密钥,它比基于密码的ssh登录更容易自动化。这是我以前使用过的,但在用于
--mount
选项的9p文件系统中遇到了很多问题,当使用用于
/hosthome
文件夹的Virtualbox挂载时,我没有得到它。我尝试了一些想法,但似乎没有比使用minikube实现您想要的更好的方法了,除了@Jakub provided.@Ralf我补充了一些对您的情况有用的答案谢谢,这似乎很有效。不知道ssh密钥,它比基于密码的ssh登录更容易自动化。