Lazy loaded image
技术分享
使用vagrant初始化多个虚拟机
00 分钟
2022-3-5
2024-12-27
type
status
date
slug
summary
tags
category
icon
password
katacoda 和 play with kubernetes 的在线环境用起来太卡了,让我彻底放弃白嫖的想法。

背景

最近在学习 k8s,之前一直用的 kind 启动的集群,一键傻瓜式启动,但是不能对集群的配置进行修改,每次修改都要把集群销毁掉再重启。这显然不是我想要的,所以就只能自己想办法搞一套环境来操作。
一开始的时候,是打算用 katacoda 来在线操作的,但是这个平台还是有一些问题,一个是卡,初始化 master 节点直接卡死了,等了半天都不行,毕竟云服务器是很贵的,不可能每个人都给很多资源,还有一个就是网络问题,这个网站是国外的,网络有时候感觉不是很稳定,操作起来不方便。
使用 katacoda 不行,然后看到了 kubernetes handbook,上面介绍了 play with kubernetes 在线实验平台,刚开始上手感觉还不错,但是还是同样的问题–操作不方便。网页上复制粘贴要用 ctrl + Insert 和 shift + Insert,而且执行完命令没有反应,使用体验很差劲。

2022/3/21 更新

有时候启动的时候,ssh 登录会失败,从 vbox 进去查看,发现没有获取到正确的 ip 地址,尝试了好几种办法,最后的解决方法是在 vbox 里把多余的网卡删除掉,这样虚拟机就能获取到正确的 ip 地址。
默认用的网卡,配的 ip 地址是 192.168.56.xxx,所以在 vgrantfile 里也配成 192.168.56.xxx 的 ip 地址。

初识 Vagrant

以前经常在一些项目里看到有 Vagrantfile 这个文件,我也大概知道这个是用来创建虚拟机的,但是从来都没有用过。本来这次也是准备像以前一样,下载虚拟机的镜像,然后去创建,我都开始下载镜像了,同事给我说让我直接用 Vagrant,我想了想,试一试?
不搜不知道,原来 Vagrant 是 HashiCorp 公司的产品,说起来当初毕业设计还是参考的他们公司的一个项目做的呢 🐶

上手

vagrant 使用很简单,从官网下载对应系统的安装包,还有 virtualbox 的安装包,分别安装,就可以使用 vagrant 命令了。当然,使用 VMware 应该也可以,我在 vagrant cloud 上看到有对应的 VMware 的 box。
创建一个文件夹:
初始化:
上面这条指令会在当前目录创建一个 Vagrantfile 文件,如果只想运行虚拟机而不创建配置文件,可以使用:

修改 Vagrantfile 配置

由于要练习 k8s 的操作,那么最好是有多个节点,因此我期望达到的目标是:执行一条指令,启动多个虚拟机,然后虚拟机里面安装好 docker 和 kubernetes。然后就可以通过 ssh 连接上去练习操作。
具体的配置贴在下面:

注意

上面的配置中使用到了一个 shell 脚本,脚本应该放在和 Vagrantfile 同一目录下,脚本中的内容如下:

启动

启动只需要一条命令
如果要销毁这些虚拟机,使用
查看 vagrant 管理的虚拟机状态:
ssh 连接上虚拟机

总结

Vagrant 是个好东西啊,以前居然一直没有尝试去用它。😀
上一篇
flutter初体验
下一篇
golang结构体中的omitempty