https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及java、docker、kubernetes、devops等;
kubespray是开源的kubernetes部署工具,整合了ansible,可以方便的部署高可用集群环境,官网地址:https://github.com/kubernetes-sigs/kubespray,本文是用kubespray-2.14.2版本部署kuberneteskubernetes-1.18.10版本的实战;
本次实战采用官方推荐的在线安装,因此会去谷歌镜像仓库下载镜像,需要您的网络可以访问谷歌服务;
因为作者太穷,本次实战筹集到共计两台机器,它们的主机名、ip地址和作用描述如下:
<col>
主机名
ip地址
作用
操作系统
ansible
192.168.50.134
ansible主机
centos7
node1
192.168.50.27
k8s服务器
ubuntu-20.04.1
可见kubernetes是被部署在ubuntu电脑上;
ubuntu电脑要做以下设置:
修改/etc/hostname,设置好主机名
修改/etc/hosts,将自己的主机名和ip地址添加进去
关闭防火墙
再次查看应该是关闭状态
关闭selinux,如果提示安装selinux-utils,表示selinux没有安装,就不用关系了
ipv4网络设置
立即禁用交换分区
我的电脑上,禁用前的内存情况
执行了swapoff -a后再看,可见全部为0了
以上禁用交换分区的方法,虽然立即生效了,但是重启电脑后依旧恢复了交换分区的使用,要彻底禁用,请打开文件/etc/fstab,在下图红框这一行最前面添加#
ssh登录ansible主机;
生成ssh公私钥,输入命令ssh-keygen,然后连续四次回车:
输入命令ssh-copy-id [email protected],将ansible的ssh分发给ubuntu主机,会要求输入yes和ubuntu主机的root账号的密码,完成输入后,以后ansible就可以免密码ssh登录ubuntu主机了:
安装ansible应用:
安装pip:
通过pip安装jinja2:
安装python36:
创建工作目录,进入工作目录:
下载kubespray,我这里下载的是v2.14.2版本:
解压:
进入解压后的目录:
安装kubespray所需的应用(注意是pip3):
复制一份demo配置信息到目录inventory/mycluster:
进去看一下,可见mycluster目录下复制了很多文件:
设置集群信息(当前目录仍旧是kubespray-2.14.2):
配置ansible:
此时kubespray的脚本根据输入的ip信息做好了集群规划,具体信息可见inventory/mycluster/hosts.yml,如下所示,您也可以自行修改此文件:
执行以下命令即可开始安装,在线安装比较耗时请耐心等待:
遇到网络问题失败退出时很常见的事情,此时将上述命令重复执行即可,ansible对于已经执行过的命令会跳过的;
安装完成时控制台输出类似如下的信息(太多了,省略了一些):
至此,kubernetes集群环境部署完成,接下来简单验证一下环境是否可用;
ssh登录ubuntu机器;
查看节点、service、pod:
可见一些必须的pod和服务都已经启动了,接下来试试dashboard能否正常访问;
dashboard可以查看kubernetes系统的整体情况,为了访问dashboard页面,需要增加rbac:
执行以下命令,创建文件admin-user.yaml:
执行以下命令,创建文件admin-user-role.yaml:
创建serviceaccount和clusterrolebinding:
将kubernetes-dashboard这个服务的类型从clusterip改为nodeport,这样我们就能从浏览器访问dashboard了:
再看服务,已经成功改为nodeport :
获取token看,用于登录dashboard页面:
下图红框中就是token的内容:
9. 现在通过浏览器访问dashboard页面了,地址是:https://192.168.50.27:30443 ,其中192.168.50.27是ubuntu机器的ip地址;
10. 由于不是https协议,因此浏览器可能弹出安全提示,如下图,选择继续前往:
11. 此时页面会让您选择登录方式,选择令牌并输入前面得到的token,即可登录:
登录成功后可以见到系统信息,如下图:
至此,kubespray-2.14.2安装kubernetes-1.18.10完成,希望本文能给您一些参考。
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游java世界...