k8s自动化安装脚本(二进制)的操作步骤

介绍

通过ansible脚本+shell实现自动化部署k8s基础集群(v1.25.0)

部署结构

%k8s自动化安装脚本(二进制)的操作步骤-猿站网-插图

1. 通过二进制部署包镜像安装k8s集群、目录etcd节点只支持1-3个节点、最多三个etcd节点

2. 因k8s版本相对较新、需要升级内核来支持后台程序、当前版本只支持Cento7,内核版本(5.19.4-1.el7.elrepo.x86_64)

3. 采用k8s二进制安装,通过system进行管理,采用本地yum仓库,版本是:1.25.0

4. 部署节点安装docker的yum源是基于Centos7.5/7.6,版本是:19.03.14

5. 部署节点安装ansible时,使用离线安装,版本:2.9.27

操作步骤

环境准备

作用 IP地址 操作系统 配置 k8s-master01 192.168.1.13 CentOS7 最低配置2C2G ansible 192.168.1.140 CentOS7 最低配置1C1G node节点可以填写多个,根据实际情况确认,但是不能超出单master节点的限制 master节点至少是三个少一个都不是高可用版本 高可用部署时需要为keepalived提前确认好vip的信息

备注

单独找一台机器用于部署ansible服务,升级内核时需要重启服务器 部署节点部署重启,否则会导致执行报错 但是需要确保机器资源充足,且相关的端口不会冲突(38081【yum】、38082【registry】) 相关的网络关系需要提前确认

解压部署包

?
1
2
3
4
5
#上传部署包(xshell)
yum -y install lrzsz
rz install_k8s_binary_20220905.tar.gz
#解压
tar -xvf install_k8s_binary_20220905.tar.gz -C /opt

修改host文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#部署机器,初始脚本、安装包镜像
[deploy_server]
192.168.1.11 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22 hostname=”Ansible”
#apiserver、controller、scheduler、通过下面的install_kubelet_enable来确认是否在master节点上安装kubelet、proxy服务
[kubernetes_master]
192.168.1.12 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22  hostname=”k8s-master01″
#kubelet、proxy,可任意添加节点数,只要不超出k8s本身的限制即可
[kubernetes_node]
#192.168.1.13 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22  hostname=”k8s-node01″
#单节点或者三节点其他的暂时不支持,通过脚本解析主机信息,目前只支持1-3个节点
[etcd]
192.168.1.12 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22 ETCD_NAME=”k8s-master01″
#不填写,则不安装镜像仓库、目前尚未完成(待完善)
[docker_repositry]
#192.168.1.136 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22 hostname=”k8s-node01″
#双节点
[haproxy_keepalived]
#192.168.1.12 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22 hostname=”k8s-haproxy”
#192.168.1.12 ansible_user=”root” ansible_ssh_pass=”1″  ansible_ssh_port=22 hostname=”k8s-haproxy”
[nodes:children]
kubernetes_master
kubernetes_node
haproxy_keepalived
etcd
[all:vars]
#interface=”ens33″             #部署机器的网卡名称
master_vip=”192.168.1.120″     #高可用
#布尔值 true or false
install_kubelet_enable=”true”  #master节点是否安装kubelet、kube-proxy 
network_enable=”false”         #联网状态下,加载网络yum仓库
Basic_enable=”true”            #安装基础软件包   
clear_cert_data=”false”        #清理上一次生成的证书及清理cfssl的安装包
#k8s 组件服务
dashboard_enable=”false”       #安装dashboard服务
prometheus_enable=”false”      #安装Prometheus服务,尚未完成
ingress_enable=”false”         #安装ingress服务,尚未完成

初始化环境

?
1
2
3
4
5
6
7
8
[root@registry]# cd /opt/install_k8s_binary
[root@registry install_k8s_binary]# sh Run.sh
1) 初始化环境(ansible))
2) 安装k8s集群(v1.25.0)(二进制)
—————————————————————————-
请输入对应的数字编号:1
请输入部署机的地址(192.168.1.11):
#部署机的地址,通过脚本获取的地址,确认无误后直接回车即可

执行结果

%k8s自动化安装脚本(二进制)的操作步骤-1猿站网-插图

安装docker服务安装ansible服务,修改ansible.cfg配置准备离线yum仓库挂载点是:部署包的下的yum目录准备离线registry仓库,相关挂载点是:/var/images/

安装k8s集群

登录部署机器上执行Run.sh脚本

执行结果如下:

%k8s自动化安装脚本(二进制)的操作步骤-2猿站网-插图

登录master的节点

%k8s自动化安装脚本(二进制)的操作步骤-3猿站网-插图

因本地虚拟机限制,目前使用单节点测试部署,一主一从的也测试可行高可用版本尚未测试,虚拟机测试电脑容易死机

部署包下载

链接: https://pan.baidu.com/s/1-_yDvPnE7Jt167S_9IzWzw?pwd=egwf

提取码: egwf 

目前版本,后续会更新 初始化环境时,如果启动报错,出现…iptable…的字段这可以重新执行一次初始化即可正常启动 目前containerd的镜像仓库配置的是初始化的地址,如果需要使用k8s集群,则需要手动修改containerd的配置文件<自行百度添加>(后续优化

总结

上述则是当前部署中可运行正常的服务执行Run.sh 输入init,则可以调试脚本,对应的启动文件,修改,则可以进行调试(playbook/tools/deploy_test.yaml)

原文链接:https://blog.csdn.net/qq_44246980/article/details/126712571

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:什么是最大BD复写速度

2023-3-3 15:21:51

建站知识

Docker 镜像构建保姆级入门示例教程

2023-3-3 15:26:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索