说明:为什么写这篇博客?
想在家学习k8s知识时顺便可以敲一下kubectl命令,不想再安装桌面虚拟化软件,没钱在云上买5台服务器,好好利用Win10强大的hyper-v功能。本人在此次进行此次活动前,已掌握Docker,docker-compose,理解虚拟机,ansible,k8s的基本部署步骤(etcd,flannel,k8s),在公司由同事指导下已经进行过一次使用kubeasz进行k8s的部署。本人电脑内存为12G(建议16G).

1如何快速创建多台虚拟机

  1. 首先需要开启win10专业版的虚拟化功能(hyper-v),开启步骤例如 此链接
  2. 下载CentOS的mini镜像iso,下载地址
  3. 先创建一台虚拟机。笔者的虚拟机名称为 a1,分配内存为 1024;配置网络为 Default Switch;创建虚拟硬盘为 20G;使用映像文件(iso)安装操作系统。
  4. 配置虚拟机,将ONBOOT的值改为yes;笔者尝试了很多次试图把虚拟机的动态分配IP的方式改为静态IP的方式,但最终都失败了,最后只能使用双Ip地址,即在 /etc/sysconfig/network-scripts/ifcfg-eth0 文件的最后一行添加上一个私有IP地址作为静态地址。
    $  window10开启虚拟化多用户同时登陆 win10虚拟机可以开几个_快速搭建k8s
    window10开启虚拟化多用户同时登陆 win10虚拟机可以开几个_kubernets_02
  5. 在创建虚拟机时,安装操作系统耗时挺久的,因此接下来笔者选择使用 window10开启虚拟化多用户同时登陆 win10虚拟机可以开几个_虚拟机_03 这功能(类似于克隆)来创建其它4台虚拟机,导入类型选择“复制虚拟机”。
    被导入的文件夹如下:
  6. 最后修改虚拟机名称,和进入虚拟机内修改各个虚拟机的静态Ip地址。

创建k8s集群

笔者使用 kubeasz 进行k8s地快速搭建。
  1. 在第一台虚拟机上使用yum安装好Git 和 Ansible.
  2. 修改每一台虚拟机系统的名字(k8s集群内每个节点的服务器名不能相同)
  3. 使用kubeaze进行离线搭建k8s集群。
# 下载工具脚本easzup,笔者使用kubeasz版本2.0.2
export release=2.0.2
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
chmod +x ./easzup
# 执行此脚本,所有的文件将被下载在/etc/ansible目录下,只要使用此目录便可以在任意linux操作系统上进行k8s集群的搭建。
./easzup -D
  1. 修改各个节点的IP地址:cd /etc/ansible && cp example/hosts.multi-node hosts, 然后根据实际情况修改此hosts文件;并且在IP后面添加对应的密码 ansible_ssh_pass=password,默认ansible使用的用户为root。
  2. 验证ansible 安装:ansible all -m ping 正常能看到节点返回 SUCCESS
  3. 一键安装: ansible-playbook 90.setup.yml
  4. 为了更方便操作,最后使用xshell 连接进虚拟机。