目录
- VirtualBox 准备虚拟机环境
-
- 软件和系统准备
-
- 下载CentOS 7.X镜像
-
-
- centos 7.9
- centos 7.6(推荐,可以避免虚拟机配置 络时出现问题)
-
- 下载VirtualBox
-
-
- VirtualBox 6.1.18
-
- 安装VirtualBox和创建CentOS 7.6虚拟机
-
-
- ViratualBox安装
- VirtualBox创建虚拟机安装CentOS
- 配置 络
-
- 安装k8s(Kubeadm)
-
-
- CentOS的系统初始化
-
- 初始化环境
- 安装Docker/kubeadm/kubelet(master节点和node节点都要执行)
- 部署master节点(只在master执行)
- 部署node节点(只在node节点执行)
- 安装 络插件(master节点执行)
- 测试整个集群
-
VirtualBox 准备虚拟机环境
软件和系统准备
下载CentOS 7.X镜像
centos 7.9
https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Everything-2009.iso
centos 7.6(推荐,可以避免虚拟机配置 络时出现问题)
https://mirrors.aliyun.com/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-Everything-1810.iso
建议下载7.6版本
下载VirtualBox
VirtualBox 6.1.18
https://download.virtualbox.org/virtualbox/6.1.18/VirtualBox-6.1.18-142142-Win.exe
安装VirtualBox和创建CentOS 7.6虚拟机
ViratualBox安装
VirtualBox创建虚拟机安装CentOS
配置 络
这里选择NAT 络和仅主机(Host Only) 络。“NAT 络”用来访问外 ,“仅主机(Host Only) 络”用来虚拟主机之间、虚拟主机和宿主机之间通信。
NAT 络也可以用“桥接 卡”代替,但是对于多 卡的用户,比如有无线 和有线 的电脑。如果后面切换了上 方式,需要重新配置 络。
NAT 络用DHCP的方式获取IP,仅主机(Host Only) 络用固定IP的方式以供其他虚拟机和宿主机访问。
配置“仅主机(Host Only) 络”(如果使用了NAT 络并且访问外 不通的情况下需要配置“NAT 络”)
1、启用一个连接方式为“仅主机(Host Only) 络”的 卡,记下 卡MAC地址,在虚拟机设置-> 络-> 卡n(仅主机(Host Only) 络)
3、利用ssh工具连上虚拟机后,如果ifconfig工具没有装上,先把ifconfig装上。如果没有公 ,比如** ping baidu.com **的时候ping不通,这是改虚拟机”NAT 络”这张 卡的配置在虚拟机中有问题,这里需要在后面的步骤把该 卡也配置上。
装上过后用ifconfig查看ip地址, 卡的名字,和 卡的mac地址,后期好确认是否修改成功。
4、进入到虚拟机的**/etc/sysconfig/network-scripts**
这里一般会有一个文件名为**ifcfg-**开头的文件(上面两个镜像一般是文件名为ifcfg-enp0s3),可以使用这个文件作为其中一个 卡的配置文件,再创建一个 卡配置文件,一般为ifcfg-enp0s8(ifcfg-必须,后面的名字随意取)。
添加配置文件,下面是模板
6、重启network,systemctl restart network。如果启动失败,journalctl -xe查看错误原因,如果错误原因是UUID不符合规范,用uuidgen生成新的UUID。
生成后重新放到配置文中,重复第6步。
注意:这里必须把 络配置通过,能访问公 和宿主机与虚拟机间能连通,特别是宿主机和虚拟机,虚拟机和虚拟机之间。
7、如果上面的配置生效,这里可能ssh工具会和虚拟机之间断开,这是因为新配置的host only的配置已经生效,切换ip为配置的静态ip地址即可。这里开始复制创建好的这个虚拟机,复制2个出来,复制好后在另外的两个虚拟主机重复第5和第6步。
这里可能出现复制后的主机在经过第5和第6步后,配置不生效, 络依然不通的问题,这个时候删除掉这个虚拟机,重新复制一遍(最笨的办法)。
确认是否上述问题的办法
查看 卡配置文件中的device的值是否和UUID的值对的上。如果对不上,并且在下面会多没有连接的connection。而这个没连接connection的UUID才是你 卡配置文件中的UUID。这个时候就可以按照上面的办法尝试了。
安装k8s(Kubeadm)
CentOS的系统初始化
初始化环境
1、关闭防火墙
2、关闭 selinux
3、关闭 swap
4、设置主机名,方便查看。
5、添加master和node节点添加hosts
6、将桥接的 IPv4 流量传递到 iptables 的链
7、时间同步,这里注意,本地安装虚拟机的,建议每次打开虚拟机都执行一次同步时间的命令。因为本地休眠或者关机后,时间就不会更新了。
安装Docker/kubeadm/kubelet(master节点和node节点都要执行)
1、安装Docker
2、设置docker镜像地址,registry-mirrors后面的为阿里云的docker镜像地址,建议自己申请一个
3、添加阿里云 kubernetes的YUM 软件源
4、安装 kubeadm, kubelet 和 kubectl
部署master节点(只在master执行)
1、初始化k8s master,去除下面的,并且将命令放在一行。apiserver-advertise-address为master的ip地址,service-cidr和pod-network-cidr为虚拟的docker内 ,需要和虚拟机实际内 地址 段不同
master节点init后后出现一个node用来join到master的命令,里面包含了token等信息,但是这个有效期只有24小时,需要重新获取重新输入以下命令
2、指定阿里云镜像仓库地址,下面的命令是将配置文件放到k8s的默认配置文件地址,k8s会在这个文件夹内查找配置文件
查看配置文件是否生效,不 错就是配置文件没问题
部署node节点(只在node节点执行)
1、将node节点join到master节点,复制上面master在init时打印出来的join命令
上面的token只有24小时的有效时间,如果后面节点超过了token有效期想要加入master,需要重新获取token。
2、查看node节点有无加入到master节点,下面命令在master机器执行
这个命令会看到node节点已加入到master节点,但是他的状态时NotReady,下面会安装 络插件。
安装 络插件(master节点执行)
1、安装 络插件,下面的文件可能无法在国内下载
可以使用其他方法下载下来,然后使用
2、查看是否成功
可以看到name为kube-flannel-ds开头的,status为running的,即为成功。如果有不是running,可能node节点正在下载。
3、查看node节点状态,如果为ready,即node节点的 络插件也下载完成,如果状态不是ready,稍等一下,下载比较慢。
测试整个集群
1、master节点执行安装nginx
在最后一个命令会出现node节点的nginx的状态,访问node节点的ip加端口就可以访问到nginx
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!