连江县建设局网站,企业建网站,煤棚球形网架公司,怎么打广告吸引客户文章目录介绍软件架构版本介绍更新内容2023-02-192023-02-152023-02-142023-02-102022-10-202022-08-06准备部署包操作步骤环境准备结构备注解压部署包修改host文件脚本使用方式初始化环境验证ansible配置安装k8s集群登录master的节点添加node节点master节点状态检查组件安装安…
文章目录介绍软件架构版本介绍更新内容2023-02-192023-02-152023-02-142023-02-102022-10-202022-08-06准备部署包操作步骤环境准备结构备注解压部署包修改host文件脚本使用方式初始化环境验证ansible配置安装k8s集群登录master的节点添加node节点master节点状态检查组件安装安装方式访问prometheus访问grafana添加node-exporter面板ingress-nginxkuboard的安装访问kuboard纳管集群证书查看kubeadm 命令查看openssl 命令查看kuboard界面查看更新证书验证证书有效期部署包地址总结介绍
以1.21.1的脚本模板重构k8s的部署方式(v1.23.7)添加私有仓库的部署及相关离线安装包的方式通过kubeadm进行一键式部署k8s集群根据不同的启动方式可部署单节点、一主多从、多主多从高可用的k8s集群通过ansible快速部署k8s的基础组件(nfs、helm、ingress、monitoring【联网|离线镜像】、kuboard【联网】)
软件架构
通过部署包中的run.sh进行统一入口进行初始化环境(部署节点)ansibleshell实现自动获取host文件中的相关信息进行自动化部署
版本介绍
需要提前准备多台主机根据准备机器的多少修改host文件本环境是为了开发环境中快速部署k8s集群采用kubeadn安装采用本地yum仓库版本是1.23.7安装docker的yum源是基于Centos7.5/7.6,版本是23.0.1安装ansible时使用离线安装版本: 2.9.27安装helm时使用离线安装版本: v3.8.1高可用安装时采用haproxy(1.5.18-9)keepalived(1.3.5-19)添加kuboard:v3面板的安装(ansible)主机单节点、单容器
更新内容
2023-02-19
修改k8s版本及docker的版本优化后续修改源镜像的操作去除dashboard面板添加kuboard:v3面板的安装
2023-02-15
离线安装helm,同时repo add 仓库(联网)默认不安装,控制按钮在host文件中的k8s_helm_enable参数添加metrics-server组件用于实现kubectl top pod(离线安装)默认安装,控制按钮在host文件中的metrics_server_enable参数
2023-02-14
优化监控组件通过github上找到的yaml结合ansible进行自动化的部署到k8s集群上k8s master节点的第一台机器上/opt/deploy/grafana/node_export.json文件可以导入到grafana平台上用于监控物理机的机器资源信息prometheus-k8s服务是statefulsets的服务且有资源限制内存400Mi过低会导致服务无法启动安装监控组件时需要确定服务的基础设施是否符合预期
2023-02-10
处理内核参数有几率加载失败的情况重构初始化环境的脚本减少初始化时出现的错误 如果失败重新执行即可 重写设置主机名的角色默认删除后覆盖/etc/hosts文件新增nfs服务的安装可以通过storageClassName: nfs-storage字段添加pvc nfs目前只支持单节点部署不支持自动化对应外部nfs对接外部nfs需要手动修改对应的yaml即可后续详细介绍
2022-10-20
添加kubeadm自动部署高可用版本新增haproxykeepalived修复dashboard权限问题添加ingress的部署方式默认安装通过部署包已更新至下述链接
2022-08-06
时间太久忘记了。。。
准备部署包
https://download.csdn.net/download/qq_44246980/85695007 新版本未成功上传 操作步骤
环境准备
作用IP地址操作系统配置k8s-master01192.168.1.21CentOS7最低配置2C2Gk8s-master02192.168.1.22CentOS7最低配置2C2Gk8s-master02192.168.1.23CentOS7最低配置2C2Gk8s-node01192.168.1.31CentOS7最低配置2C2Gansible192.168.1.31CentOS7最低配置1C1G
结构 node节点可以填写多个根据实际情况确认但是不能超出单master节点的限制master节点至少是三个少一个都不是高可用版本高可用版本keepalived需要提前确认好vip建议机器处于同一网段中或者同一局域网内 备注
建议单独找一台机器用于部署ansible服务可以不接受但是需要确保机器资源充足且相关的端口不会冲突38081【yum】、38082【registry】相关的网络关系需要提前确认三台master节点可以是2n1台目前因本地环境只测试了三台master其他节点尚未涉及
解压部署包
#上传部署包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修改host文件
#部署机器初始脚本、安装包镜像
[deploy_server]
192.168.1.31 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 #多主多从
[kubernetes_master]
192.168.1.21 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-master01
192.168.1.22 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-master02
192.168.1.23 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-master03[kubernetes_node]
#192.168.1.23 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-node01
#192.168.1.24 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-node02#脚本导致添加必须是master01节点
[nfs]
#192.168.1.21 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22#双节点
[haproxy_keepalived]
192.168.1.21 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-master01
192.168.1.22 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-master02#不填写则不安装镜像仓库
[docker_repositry]
#192.168.1.136 ansible_userroot ansible_ssh_pass1 ansible_ssh_port22 hostnamek8s-node01[nodes:children]
kubernetes_master
kubernetes_node[all:vars]
#脚本解析主机信息层级默认只能添加3个,即3个master3个node
Number3
master_vip192.168.1.120 #keepalived使用的vip
add_node_hostsno #添加主机信息(yes合并no删除后新建[覆盖])######################################################################################
#布尔值true or false
Basic_enabletrue #安装基础软件包
set_host_enabletrue #设置主机名注入/etc/hosts文件
metrics_server_enabletrue #安装metrics_server,kubectl top pod
######################################################################################
#可选组件
######################################################################################
ingress_enablefalse #安装ingress服务
k8s_nfs_enablefalse #安装nfs-client服务上述的地址必须填写否则nfs客户端会启动失败
k8s_helm_enablefalse #k8s master节点安装helm客户端(在线)
######################################################################################
#监控组件、k8s v1.23.7版本以上(在线)
#监控组件的镜像采用在线的模式需要联网自动下载减少离线安装包的大小
#git clone https://github.com/prometheus-operator/kube-prometheus.git
monitoring_enablefalse #是否安装监控组件,默认不安装
clean_monitoringfalse #是否清理当前已安装的监控组件注意修改前需要确认监控组件已经部署完成后需要清理
#监控组件服务
nodeExporter_enabletrue #采集器node_export
prometheus_enabletrue #安装Prometheus服务
grafana_enabletrue #是否安装grafana服务
ControlPlane_enabletrue #部署k8s ControlPlane,控制面板里面有很多的设置放在一起的用来设置规则
prometheusAdapter_enabletrue #prometheusAdapter
prometheusOperator_enabletrue #prometheusOperatorkube_state_metrics_enablefalse #kube_state_metrics
alertmanager_enalbefalse #是否安装alertmanager服务
blackboxExporter_enalbefalse #是否安装blackboxExporter服务一主多从需要把kubernetes_master里只添加一个地址多主多从需要把kubernetes_master里添加三个地址,脚本只支持添加三个master节点多主多从同时需要把haproxy_keepalived角色填写 脚本使用方式
[rootregistry]# cd /opt/deploy_install_k8s
[rootregistry]# ls
host images init playbook README.md run.sh yum
[rootansible 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/)初始化环境
[rootregistry 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/ 验证ansible配置
sh run.sh ping安装k8s集群
[rootregistry 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正确且网络连接正常后回车等待执行脚本结束执行结果如下
登录master的节点 添加node节点 在host文件下的kubernetes_node分组下添加新增的需要新增的节点并把之前已添加的节点删除修改后执行 sh run.sh online脚本选择4添加node节点脚本正常执行完毕后检查各个节点的/etc/hosts文件如果确认对应的域名解析需要手动添加对应的主机关系注意:每次添加node节点时需要把已填入集群的节点手动删除否则会出现重复加入的操作导致剧本执行失败 sh run.sh onlinemaster节点状态检查 组件安装 默认不安装手动修改后安装可以在按照k8s集群后进行安装使用也可以在安装集群的是否安装 安装方式
[rootk8s-node01 install_k8s_kubeadm]# sh run.sh install需要前修改上述图片中的布尔值改为true时开始执行安装因本地环境资源不足不做演示截图 访问prometheus
访问地址: http://k8s-ip:30090/
访问grafana
访问地址: http://k8s-ip:30000/ 登陆密码: admin/admin
添加node-exporter面板 下载k8s master节点的第一台机器上/opt/deploy/grafana/node_export.json文件通过浏览器登陆grafana平台通过Dashboards按钮鼠标停放选择import出现导入界面选择upload json file按钮选择下载到本地的文件其他都是自动填充的最后一个选择prometheus data source数据源后点击导入即可 ingress-nginx 使用方式自行百度 kuboard的安装
#在线下载网速较慢的情况下建议使用云主机下载
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
[rootregistry ~]# 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则无需上述操作直接执行即可
[rootregistry install_k8s_kubeadm]# sh run.sh online访问kuboard
http://ansible-ip:18080
纳管集群 详细功能请查看kuboard的官方https://www.kuboard.cn/ 证书查看
kubeadm 命令查看
#可以通过 kubeadm alpha certs check-expiration 命令查看相关证书是否过期。
#注该命令仅在 v.15 之后的版本可用
kubeadm alpha certs check-expiration
# k8s v1.23.7
kubeadm certs check-expirationopenssl 命令查看
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep Not kuboard界面查看 更新证书
Kubenetes通过脚本自动更新证书有效期脚本来源
[rootregistry 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?pwdbcbx 提取码bcbx
总结 上述则是当前部署中可运行正常的服务执行sh Run.sh init,则可以调试脚本对应的启动文件修改则可以进行调试执行sh Run.sh install,修改host文件则可以进行安装组件