Kubernetes 学习之使用 kubeadm-ha 脚本一键安装 K8S
前情提示
以前安装k8s集群的时候使用的是k8s官网的教程 使用的镜像源都是国外的 速度慢就不说了 还有一些根本就下载不动 导致安装失败 最后在群里小伙伴(蘑菇博客交流群/@你钉钉响了)的建议下使用一个开源的一键安装k8s的脚本就好了起来了
Github 地址:https://github.com/TimeBye/kubeadm-ha
环境准备
官网的安装说明也很简单但是还有些细节还是没有提到 所以我自己照着官网的教程 补充了一些细节
硬件系统要求
- Master 节点:2C4G +
- Worker 节点:2C4G +
使用 centos7.7 安装请按上面配置准备好 3 台 centos,1 台作为 Master 节点,2 台 Worker 节点
本方式为 1 主 2worker 的配置
这是我的各个节点的配置
主机名 | ip | 配置 |
---|---|---|
k8s-master | 192.168.177.130 | 2C4G |
k8s-node1 | 192.168.177.131 | 2C2G |
k8s-node2 | 192.168.177.132 | 2C2G |
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 |
集群重置
如果部署失败了,想要重置整个集群【包括数据】,执行下面脚本
1 | ansible-playbook -i example/hosts.s-master.ip.ini 99-reset-cluster.yml |
部署 kuboard
安装 Docker
因为我们需要拉取镜像,所以需要在服务器提前安装好 Docker,首先配置一下 Docker 的阿里 yum 源
1 | cat >/etc/yum.repos.d/docker.repo<<EOF |
然后 yum 方式安装 docker
1 | # yum安装 |
配置 docker 的镜像源
1 | cat >> /etc/docker/daemon.json << EOF |
然后重启 docker
1 | systemctl restart docker |
安装 Kuboard【可选】
简介
Kuboard 是一款免费的 Kubernetes 图形化管理工具,力图帮助用户快速在 Kubernetes 上落地微服务。
Kuboard 文档:https://kuboard.cn/
安装
在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 |
输出结果如下所示。注意:如果是 ContainerCreating
那么需要等待一会
1 | NAME READY STATUS RESTARTS AGE |
访问 Kuboard
Kuboard Service 使用了 NodePort 的方式暴露服务,NodePort 为 32567;您可以按如下方式访问 Kuboard。
1 | # 格式 |
页面如下所示:
第一次访问需要输入 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,然后粘贴到框中,我的 token 格式如下:
1 | eyJhbGciOiJSUzI1NiIsImtpZCI6ImY1eUZlc0RwUlZha0E3LWZhWXUzUGljNDM3SE0zU0Q4dzd5R3JTdXM2WEUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXVzZXItdG9rZW4tMmJsamsiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoia3Vib2FyZC11c2VyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzhlZDRmNDktNzM0Zi00MjU1LTljODUtMWI5MGI4MzU4ZWMzIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmt1Ym9hcmQtdXNlciJ9.MujbwGnkL_qa3H14oKDT1zZ5Fzt16pWoaY52nT7fV5B2nNIRsB3Esd18S8ztHUJZLRGxAhBwu-utToi2YBb8pH9RfIeSXMezFZ6QhBbp0n5xYWeYETQYKJmes2FRcW-6jrbpvXlfUuPXqsbRX8qrnmSVEbcAms22CSSVhUbTz1kz8C7b1C4lpSGGuvdpNxgslNFZTFrcImpelpGSaIGEMUk1qdjKMROw8bV83pga4Y41Y6rJYE3hdnCkUA8w2SZOYuF2kT1DuZuKq3A53iLsvJ6Ps-gpli2HcoiB0NkeI_fJORXmYfcj5N2Csw6uGUDiBOr1T4Dto-i8SaApqmdcXg |
最后即可进入 kuboard 的 dashboard 界面
卸载 Kuboard
当我们 kuboard 不想使用的时候,我们就可以直接卸载
1 | kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml |
Rancher 部署【可选】
kuboard 和 rancher 建议部署其中一个
helm 安装
使用 helm 部署 rancher 会方便很多,所以需要安装 helm
1 | curl -O http://rancher-mirror.cnrancher.com/helm/v3.2.4/helm-v3.2.4-linux-amd64.tar.gz |
验证
1 | helm version |
输入以下内容说明 helm 安装成功
1 | version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"} |
添加 rancher chart 仓库
1 | helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable |
安装 rancher
1 | helm install rancher rancher-stable/rancher \ |
等待 Rancher 运行:
1 | kubectl -n cattle-system rollout status deploy/rancher |
输出信息:
1 | Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available... |
发布时间: 2021-01-13
最后更新: 2024-06-24
本文标题: Kubernetes学习之使用kubeadm-ha脚本一键安装K8S
本文链接: https://blog-yilia.xiaojingge.com/posts/4c2f5046.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
