host
文件,本环境是为了开发环境中快速部署k8s集群host
文件中的k8s_helm_enable
参数metrics-server
组件,用于实现kubectl top pod(离线安装)host
文件中的metrics_server_enable
参数/opt/deploy/grafana/node_export.json
文件可以导入到grafana平台上,用于监控物理机的机器资源信息/etc/hosts
文件storageClassName: nfs-storage
字段添加pvc
https://download.csdn.net/download/qq_44246980/85695007
新版本未成功上传
作用 | IP地址 | 操作系统 | 配置 |
---|---|---|---|
k8s-master01 | 192.168.1.21 | CentOS7 | 最低配置2C2G |
k8s-master02 | 192.168.1.22 | CentOS7 | 最低配置2C2G |
k8s-master02 | 192.168.1.23 | CentOS7 | 最低配置2C2G |
k8s-node01 | 192.168.1.31 | CentOS7 | 最低配置2C2G |
ansible | 192.168.1.31 | CentOS7 | 最低配置1C1G |
- node节点可以填写多个,根据实际情况确认,但是不能超出单master节点的限制
- master节点至少是三个少一个都不是高可用版本
- 高可用版本
keepalived
需要提前确认好vip- 建议机器处于同一网段中,或者同一局域网内
#上传部署包(xshell)
cd /opt #目录随意
yum -y install lrzsz
rz install_k8s_kubeadm_v1.23.7_20230219.tar.gz
#解压
tar -xvf install_k8s_kubeadm_v1.23.7_20230219.tar.gz
#部署机器,初始脚本、安装包镜像
[deploy_server]
192.168.1.31 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22
#多主多从
[kubernetes_master]
192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master01"
192.168.1.22 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master02"
192.168.1.23 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master03"
[kubernetes_node]
#192.168.1.23 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node01"
#192.168.1.24 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node02"
#脚本导致添加必须是master01节点
[nfs]
#192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22
#双节点
[haproxy_keepalived]
192.168.1.21 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master01"
192.168.1.22 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-master02"
#不填写,则不安装镜像仓库
[docker_repositry]
#192.168.1.136 ansible_user="root" ansible_ssh_pass="1" ansible_ssh_port=22 hostname="k8s-node01"
[nodes:children]
kubernetes_master
kubernetes_node
[all:vars]
#脚本解析主机信息,层级默认只能添加3个,即3个master,3个node
Number="3"
master_vip="192.168.1.120" #keepalived使用的vip
add_node_hosts="no" #添加主机信息(yes=合并,no=删除后新建[覆盖])
######################################################################################
#布尔值true or false
Basic_enable="true" #安装基础软件包
set_host_enable="true" #设置主机名注入/etc/hosts文件
metrics_server_enable="true" #安装metrics_server,kubectl top pod
######################################################################################
#可选组件
######################################################################################
ingress_enable="false" #安装ingress服务
k8s_nfs_enable="false" #安装nfs-client服务,上述的地址必须填写,否则nfs客户端会启动失败
k8s_helm_enable="false" #k8s master节点安装helm客户端(在线)
######################################################################################
#监控组件、k8s v1.23.7版本以上(在线)
#监控组件的镜像采用在线的模式,需要联网自动下载,减少离线安装包的大小
#git clone https://github.com/prometheus-operator/kube-prometheus.git
monitoring_enable="false" #是否安装监控组件,默认不安装
clean_monitoring="false" #是否清理当前已安装的监控组件,注意,修改前需要确认监控组件已经部署完成后需要清理
#监控组件服务
nodeExporter_enable="true" #采集器node_export
prometheus_enable="true" #安装Prometheus服务
grafana_enable="true" #是否安装grafana服务
ControlPlane_enable="true" #部署k8s ControlPlane,控制面板,里面有很多的设置放在一起的,用来设置规则
prometheusAdapter_enable="true" #prometheusAdapter
prometheusOperator_enable="true" #prometheusOperator
kube_state_metrics_enable="false" #kube_state_metrics
alertmanager_enalbe="false" #是否安装alertmanager服务
blackboxExporter_enalbe="false" #是否安装blackboxExporter服务
- 一主多从需要把
kubernetes_master
里只添加一个地址- 多主多从需要把
kubernetes_master
里添加三个地址,脚本只支持添加三个master节点- 多主多从同时需要把
haproxy_keepalived
角色填写
[root@registry]# cd /opt/deploy_install_k8s
[root@registry]# ls
host images init playbook README.md run.sh yum
[root@ansible install_k8s_kubeadm]# sh run.sh
【registry 2023-02-19 03:01:55】 sh run.sh init 初始化环境
----------------------------------------------------------------------------
【registry 2023-02-19 03:01:55】 sh run.sh online 在线安装(kuboard、monitoring组件)
【registry 2023-02-19 03:01:55】 sh run.sh offline 离线安装k8s(1.23.7)
----------------------------------------------------------------------------
【registry 2023-02-19 03:01:55】 sh run.sh ping 验证ansible的主机清单信息(ping)
【registry 2023-02-19 03:01:55】 sh run.sh install 通过host文件进行组件的单独安装
----------------------------------------------------------------------------
【registry 2023-02-19 03:01:55】 sh run.sh load offline 保存离线镜像包(monitoring组件)
【registry 2023-02-19 03:01:55】 sh run.sh load warehouse 导入上面保存的组件
【registry 2023-02-19 03:01:55】 sh run.sh load help 帮助信息
#1. 执行run.sh脚本,获取脚本的执行帮助信息
#2. sh run.sh init 初始化ansible机器,初始化环境章节详细介绍
#3. sh run.sh online 在线安装(kuboard、monitoring组件) ,相关组件的镜像未合并到registry镜像里(减少安装包的大小)
#4. sh run.sh online 离线安装(kuboard、monitoring组件),通过脚本在线下载并保存离线镜像包,然后配合脚本导入离线环境的机器中使用
#5. sh run.sh ping 验证ansible的网络是否正常通信
#6. sh run.sh install 默认在线安装基础组件(monitoring组件),其他的组件则存放在本地的registry镜像仓库里
#7. sh run.sh load offline 虚拟机解压安装包后,执行初始化环境,联网状态下下载(monitoring组件)的离线镜像并打包,存放/tmp
#8. sh run.sh load warehouse 拷贝离线包,到执行目录(执行后提示/tmp/offline/)
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:1
请输入部署机的地址(192.168.1.31):
【registry 2023-02-19 03:01:24】 docker-ce-23.0.1-1.el7.x86_64已安装,不需要重新部署
【registry 2023-02-19 03:01:24】 docker服务已正常启动!!!
【registry 2023-02-19 03:01:24】 /var/images/deploy Ready to complete
-----------------------------------------------------------------------------------------
Loaded image: registry.bcbx.com:38082/bcbx_registry:v1.0.0
【repositry.tar】 load repository success
-----------------------------------------------------------------------------------------
【registry 2023-02-19 03:01:25】 /var/images/repositry Ready to complete
【registry 2023-02-19 03:01:25】 clear /var/images/repositry,please wait!!!
-----------------------------------------------------------------------------------------
【registry 2023-02-19 03:01:25】 registry rm success
【registry 2023-02-19 03:01:25】 start the image registry success
-----------------------------------------------------------------------------------------
【registry 2023-02-19 03:01:27】 yum_repo rm success
【registry 2023-02-19 03:01:27】 start the image yum_repo success
-----------------------------------------------------------------------------------------
【registry 2023-02-19 03:01:29】 ansible-2.9.27-1.el7.noarch已安装,不需要重新部署
【registry 2023-02-19 03:01:29】 Ansible.cfg配置文件修改成功
#部署机的地址,通过脚本过去的地址,确认无误后直接回车即可
出现上述错误,则重新执行一下
结果如下
- 安装docker服务
- 安装ansible服务,修改配置文件
- 准备离线yum仓库
- 准备离线registry仓库,相关挂载点是:/var/images/
sh run.sh ping
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:3
#host文件需要提前修改
#确认host中用户名、密码、ip正确且网络连接正常后,回车,等待执行脚本结束
- 在host文件下的kubernetes_node分组下添加新增的需要新增的节点,并把之前已添加的节点删除
- 修改后执行 sh run.sh online脚本,选择4,添加node节点
- 脚本正常执行完毕后,检查各个节点的/etc/hosts文件,如果确认对应的域名解析,需要手动添加对应的主机关系
- 注意:每次添加node节点时,需要把已填入集群的节点手动删除,否则会出现重复加入的操作导致剧本执行失败
sh run.sh online
- 默认不安装,手动修改后安装,可以在按照k8s集群后进行安装使用
- 也可以在安装集群的是否安装
[root@k8s-node01 install_k8s_kubeadm]# sh run.sh install
- 需要前修改上述图片中的布尔值,改为true时,开始执行安装
- 因本地环境资源不足,不做演示截图
访问地址: http://k8s-ip:30000/
登陆密码: admin/admin
- 下载k8s master节点的第一台机器上
/opt/deploy/grafana/node_export.json
文件- 通过浏览器登陆grafana平台,通过Dashboards按钮,鼠标停放,选择import
- 出现导入界面,选择upload json file按钮,选择下载到本地的文件
- 其他都是自动填充的,最后一个选择prometheus data source数据源后点击导入即可
使用方式,自行百度
#在线下载,网速较慢的情况下建议使用云主机下载
docker pull swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3
docker save swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 -i kuboard.tar.gz
docker load -i kuboard.tar.gz
[root@registry ~]# docker load -i kuboard.tar.gz
2d8252e11370: Loading layer [==================================================>] 3.072kB/3.072kB
22d9813f1d6a: Loading layer [==================================================>] 9.216kB/9.216kB
331120fa4807: Loading layer [==================================================>] 23.75MB/23.75MB
b6e875ecbb12: Loading layer [==================================================>] 18.77MB/18.77MB
9b6a33d74d53: Loading layer [==================================================>] 42.52MB/42.52MB
87405db6d205: Loading layer [==================================================>] 2.024MB/2.024MB
c502deb85597: Loading layer [==================================================>] 28.67kB/28.67kB
f062a9dd21ed: Loading layer [==================================================>] 61.95kB/61.95kB
20f6f032efed: Loading layer [==================================================>] 42.06MB/42.06MB
ba47fe085ef6: Loading layer [==================================================>] 13.32MB/13.32MB
Loaded image: swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3
#网速ok,则无需上述操作,直接执行即可
[root@registry install_k8s_kubeadm]# sh run.sh online
http://ansible-ip:18080
- 详细功能请查看kuboard的官方
- https://www.kuboard.cn/
#可以通过 kubeadm alpha certs check-expiration 命令查看相关证书是否过期。
#注:该命令仅在 v.15 之后的版本可用
kubeadm alpha certs check-expiration
# k8s v1.23.7
kubeadm certs check-expiration
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '
Kubenetes通过脚本自动更新证书有效期脚本来源
[root@registry install_k8s_kubeadm]# sh run.sh online
Online(在线) Dashboard
----------------------------------------------------------------------------
1) 初始化环境(ansible))
2) 安装k8s集群[一主多从](1.23.7)
3) 安装k8s集群[多主多从](1.23.7)
4) 添加k8s node节点(1.23.7)
5) 更新k8s certs,续费10年(1.23.7)
----------------------------------------------------------------------------
6) docker安装kuboard(v3)[在线安装]
7) k8s安装其他组件(nfs、monitoring、ingress)[在线安装]
----------------------------------------------------------------------------
请输入对应的数字编号:5
链接:https://pan.baidu.com/s/1Q31dwjvQJVZOZWxbR4Uv7w?pwd=bcbx
提取码:bcbx
- 上述则是当前部署中可运行正常的服务
- 执行
sh Run.sh init
,则可以调试脚本,对应的启动文件,修改,则可以进行调试- 执行
sh Run.sh install
,修改host文件,则可以进行安装组件