Kubernetes测试环境初始化脚本,使用Vagrant进行机器初始化,默认安装配置版本的k8s组件及kubeadm,并且将yum源和镜像源都替换为国内阿里源。
Vagrant使用了vagrant-hostmanager插件,初始化后hostname会自动写入宿主机和各个虚拟机的hosts文件中,可以直接用主机名进行通信或访问harbor的后台。
$ git clone https://github.com/moonlightMing/kubernetes-mechine-init
$ vagrant plugin install vagrant-hostmanager
$ vagrant up
默认是1镜像仓库、1控制平面、2工作节点的配置,也可以按需求自定义虚拟机数量,比如需要拓展为3控制平面作高可用、3工作节点时则如下
boxes = [
# image registry
{
:hostname => "harbor.local",
:ip => "192.168.33.50",
:mem => "4096",
:cpu => "2"
},
# m => master
{
:hostname => "m1",
:ip => "192.168.33.51",
:mem => "2048",
:cpu => "2"
},
{
:hostname => "m2",
:ip => "192.168.33.52",
:mem => "2048",
:cpu => "2"
},
{
:hostname => "m3",
:ip => "192.168.33.53",
:mem => "2048",
:cpu => "2"
},
# w => worker
{
:hostname => "w1",
:ip => "192.168.33.56",
:mem => "2048",
:cpu => "2"
},
{
:hostname => "w2",
:ip => "192.168.33.57",
:mem => "2048",
:cpu => "2"
},
{
:hostname => "w3",
:ip => "192.168.33.58",
:mem => "2048",
:cpu => "2"
}
]
模板还提供了一个默认的kubeadm配置文件,在不修改m1主机IP的情况下可以直接用。 Vagrant默认情况下会将启动目录下的文件都挂载在/vagrant,所以可以直接在m1上执行初始化语句
$ kubeadm init --config /vagrant/kubeadm.yaml