一键脚本部署k8s以及后续kuboard的安装
一键脚本部署k8s以及后续kuboard的安装
前情提示
以前安装k8s集群的时候使用的是k8s官网的教程 使用的镜像源都是国外的 速度慢就不说了 还有一些根本就下载不动 导致安装失败 最后在群里小伙伴(蘑菇博客交流群/@你钉钉响了)的建议下使用一个开源的一键安装k8s的脚本就好了起来了
git地址 https://github.com/TimeBye/kubeadm-ha
环境准备
官网的安装说明也很简单但是还有些细节还是没有提到 所以我自己照着官网的教程 补充了一些细节
硬件系统要求
- Master节点:2c2g+
- Worker节点:2c4g+
使用centos7.7安装请按上面配置准备好3台centos,1台作为Master节点,2台Worker节点
本方式为1主2worker的配置
这是我的各个节点的配置
主机名 | ip | 配置 |
---|---|---|
k8s-master | 192.168.28.80 | 2c8g |
k8s-master | 192.168.28.128 | 2c8g |
k8s-master | 192.168.28.89 | 2c8g |
centos准备
在安装之前需要准备一些基础的软件环境用于下载一键安装k8s的脚本和编辑配置
centos网络准备
安装时需要连接互联网下载各种软件 所以需要保证每个节点都可以访问外网
1 | ping baidu.com |
建议关闭centos的防火墙
1 | systemctl stop firewalld && systemctl disable firewalld && systemctl status firewalld |
同时需要保证各个节点间可以相互ping通
1 | ping 其他节点ip |
centos软件准备
用ssh连接到Master节点上安装git
1 | yum install git -y |
部署k8s前配置
下载部署脚本
在Master节点clone安装脚本 脚本地址
1 | git clone --depth 1 https://github.com/TimeBye/kubeadm-ha |
进入到下载的部署脚本的目录
1 | cd kubeadm-ha |
安装 Ansible 运行环境
在master节点安装Ansible环境
1 | sudo ./install-ansible.sh |
修改安装的配置文件
由于我是一个master两个node的方式构建的centos所以我们需要修改example/hosts.s-master.ip.ini 文件
1 | vi example/hosts.s-master.ip.ini |
具体要修改的就是ip 和密码 其他的保持默认
我的hosts.s-master.ip.ini 文件预览
1 | ; 将所有节点信息在这里填写 |
升级内核
修改完配置文件后建议升级内核
1 | ansible-playbook -i example/hosts.s-master.ip.ini 00-kernel.yml |
内核升级完毕后重启所有节点 在master node1 node2上执行
1 | reboot |
开始部署k8s
等待所有的节点重启完成后进入脚本目录
1 | cd kubeadm-ha |
执行一键部署命令
1 | ansible-playbook -i example/hosts.s-master.ip.ini 90-init-cluster.yml |
查看节点运行情况
1 | kubectl get nodes |
等待所有节点ready 即为创建成功
1 | NAME STATUS ROLES AGE VERSION |
部署kuboard
切换docker的镜像加速为阿里云
在所有节点执行
1 | sudo mkdir -p /etc/docker |
安装 Kuboard
在master节点执行
1 | kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml |
查看 Kuboard 运行状态
1 | kubectl get pods -l k8s.kuboard.cn/name=kuboard -n kube-system |
输出结果如下所示
1 | NAME READY STATUS RESTARTS AGE |
访问Kuboard
Kuboard Service 使用了 NodePort 的方式暴露服务,NodePort 为 32567;您可以按如下方式访问 Kuboard。
1 | http://任意一个Worker节点的IP地址:32567/ |
我的
1 | http://192.168.28.128:32567/ |
第一次访问需要输入token 我们获取一下
获取token
在master节点执行
1 | echo $(kubectl -n kube-system get secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}') -o go-template='{{.data.token}}' | base64 -d) |
我获取到的token (全部复制完全)
1 | eyJhbGciOiJSUzI1NiIsImtpZCI6ImY1eUZlc0RwUlZha0E3LWZhWXUzUGljNDM3SE0zU0Q4dzd5R3JTdXM2WEUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tMmJsamsiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzhlZDRmNDktNzM0Zi00MjU1LTljODUtMWI5MGI4MzU4ZWMzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.MujbwGnkL_qa3H14oKDT1zZ5Fzt16pWoaY52nT7fV5B2nNIRsB3Esd18S8ztHUJZLRGxAhBwu-utToi2YBb8pH9RfIeSXMezFZ6QhBbp0n5xYWeYETQYKJmes2FRcW-6jrbpvXlfUuPXqsbRX8qrnmSVEbcAms22CSSVhUbTz1kz8C7b1C4lpSGGuvdpNxgslNFZTFrcImpelpGSaIGEMUk1qdjKMROw8bV83pga4Y41Y6rJYE3hdnCkUA8w2SZOYuF2kT1DuZuKq3A53iLsvJ6Ps-gpli2HcoiB0NkeI_fJORXmYfcj5N2Csw6uGUDiBOr1T4Dto-i8SaApqmdcXg |
将token输入到kuboard
最后即可进入kuboard的dashboard界面