Kubeasz安装K8s集群(Rocky Linux9.6)
2025-06-11 09:18 WilliamZheng 阅读(542) 评论(0) 收藏 举报一、环境信息
| IP地址 | 主机名 | 角色 |
|---|---|---|
| 192.168.94.20 | WorkLinux | 离线包制作,有互联网 |
| 192.168.94.10 | k8s-node1 | 部署机、K8s Master+Worker |
| 192.168.94.11 | k8s-node2 | K8s Master+Worker |
| 192.168.94.12 | k8s-node3 | K8s Master+Worker |
操作系统:Rocky Linux release 9.6 (Blue Onyx)
内核版本:5.14.0-570.17.1.el9_6.x86_64
待安装k8s版本:v1.32.3
项目地址:https://github.com/easzlab/kubeasz
说明:模拟192.168.94.20有互联网,用来制作离线包,192.168.94.10-12是三台离线的生产环境,三台均为k8smaster+worker节点,部署机为192.168.94.10
二、离线安装包制作
- 下载工具脚本ezdown,举例使用kubeasz版本3.6.6
export release=3.6.6
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
- 下载kubeasz代码、二进制、默认容器镜像,安装docker,运行registry
所有相关文件都会保存在/etc/kubeasz
# 国内环境
./ezdown -D
# 海外环境
#./ezdown -D -m standard
- 【可选】下载额外容器镜像(cilium,flannel,prometheus等)
# 按需下载
./ezdown -X flannel
./ezdown -X local-path-provisioner
./ezdown -X prometheus
- 【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形)
./ezdown -P rocky_9
- 打包目录,制作离线安装包
cd /etc && tar -czvf kubeasz_3.6.6_1.32-x86_64.tgz ./kubeasz
三、离线环境安装k8s
以下操作均在部署机上完成
- 配置ssh免密登录
ssh-keygen
(连续三次回车)
ssh-copy-id 192.168.94.10
ssh-copy-id 192.168.94.11
ssh-copy-id 192.168.94.12
- 配置chrony时间同步
选定一个节点(groups.chrony[0])作为集群内部其他节点的时间同步源,而这个节点本身从公网源同步;如果整个集群都无法访问公网,那么请手动校准这个节点的时间后,仍旧可以作为内部集群的时间源服务器。
# RockyLinux9默认安装了chrony
systemctl status chronyd
# 修改 clusters/${cluster_name}/hosts 文件,在 chrony组中加入选中的节点ip
- 解压,离线安装docker,运行registry,检查本地文件,正常会提示所有文件已经下载完成,并上传到本地私有镜像仓库
# 目录层级必须为/etc/kubeasz
tar -zxvf kubeasz_3.6.6_1.32-x86_64.tgz -C /etc/
cd /etc/kubeasz/
./ezdown -D
./ezdown -X flannel
./ezdown -X local-path-provisioner
./ezdown -X prometheus
# 用到哪些组件,这里就需要执行哪些组件
- 创建集群配置实例
# 容器化运行kubeasz
./ezdown -S
# 设置参数允许离线安装系统软件包
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml
# 创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01
- 然后根据提示修改配置
/etc/kubeasz/clusters/k8s-01/hosts主要内容修改如下
......
[etcd]
192.168.94.10
192.168.94.11
192.168.94.12
......
[kube_master]
192.168.94.10 k8s_nodename='k8s-node1'
192.168.94.11 k8s_nodename='k8s-node2'
192.168.94.12 k8s_nodename='k8s-node3'
......
[kube_node]
192.168.94.10 k8s_nodename='k8s-node1'
192.168.94.11 k8s_nodename='k8s-node2'
192.168.94.12 k8s_nodename='k8s-node3'
......
CLUSTER_NETWORK="flannel"
PROXY_MODE="iptables"
......
/etc/kubeasz/clusters/k8s-01/config.yml主要内容修改如下
......
local_path_provisioner_install: "yes"
local_path_provisioner_dir: "/data/local-path-provisioner"
......
# 特殊目录需指定容器持久化存储,比如:
# [containerd]容器持久化存储目录
CONTAINERD_STORAGE_DIR: "/data/lib/containerd"
# [docker]容器存储目录
DOCKER_STORAGE_DIR: "/data/lib/docker"
# Kubelet 根目录
KUBELET_ROOT_DIR: "/data/lib/kubelet"
- 开始一键安装
docker exec -it kubeasz ezctl setup k8s-01 all
- 部署完成~
[root@k8s-node1 ~]# kubectl get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-node1 Ready master 57m v1.32.3 192.168.94.10 <none> Rocky Linux 9.6 (Blue Onyx) 5.14.0-570.17.1.el9_6.x86_64 containerd://2.0.4
k8s-node2 Ready master 57m v1.32.3 192.168.94.11 <none> Rocky Linux 9.6 (Blue Onyx) 5.14.0-570.17.1.el9_6.x86_64 containerd://2.0.4
k8s-node3 Ready master 57m v1.32.3 192.168.94.12 <none> Rocky Linux 9.6 (Blue Onyx) 5.14.0-570.17.1.el9_6.x86_64 containerd://2.0.4
[root@k8s-node1 ~]#
[root@k8s-node1 ~]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-75dd46b86b-bkjw6 1/1 Running 0 55m
kube-system dashboard-metrics-scraper-65c7c4ffff-7vz6d 1/1 Running 0 55m
kube-system kube-flannel-ds-9gknm 1/1 Running 11 (31m ago) 58m
kube-system kube-flannel-ds-k67zl 1/1 Running 11 (31m ago) 58m
kube-system kube-flannel-ds-tnvgh 1/1 Running 11 (31m ago) 58m
kube-system kubernetes-dashboard-75c65df89-62dkb 1/1 Running 0 55m
kube-system local-path-provisioner-69f8df4bb8-94ftz 1/1 Running 0 55m
kube-system metrics-server-74f6d6fdd5-r5dlp 1/1 Running 0 55m
kube-system node-local-dns-dw646 1/1 Running 0 55m
kube-system node-local-dns-w6wx9 1/1 Running 0 55m
kube-system node-local-dns-wrxhh 1/1 Running 0 55m
[root@k8s-node1 ~]#
- 安装插件
# 07-安装集群插件
docker exec -it kubeasz ezctl setup k8s-01 07
- 删除集群
# 注意:删除后需要重启所有节点
docker exec -it kubeasz ezctl destroy k8s-01
四、增删节点
增删master节点
# 增加master节点
docker exec -it kubeasz ezctl add-master k8s-01 192.168.94.13 k8s_nodename=k8s-master1
docker exec -it kubeasz ezctl add-etcd k8s-01 192.168.94.13
# 删除master节点
docker exec -it kubeasz ezctl del-etcd k8s-01 192.168.94.13
docker exec -it kubeasz ezctl del-master k8s-01 192.168.94.13
增删node节点
# 增加node节点
docker exec -it kubeasz ezctl add-node k8s-01 192.168.94.14 k8s_nodename=k8s-node4
# 删除node节点
docker exec -it kubeasz ezctl del-node k8s-01 192.168.94.14
WilliamZheng©版权所有 转载请注明出处! 觉得对您有帮助请点个赞哟~ 运维架构师群:833329925
浙公网安备 33010602011771号