版本:kubeeasy-v1.3.2
更新说明:
- 新增安装软件包并发执行任务
- 新增私有容器registry仓库,用于集群拉取镜像
- 修改容器镜像的操作
- 新增系统指标检测(CPU Memory Disk)
- 新增集群优化系统配置
- 新增集群使用命令输出
- 优化部分内容
OS:centos 7.9 x64
CPU:2C及以上
MEM:4G及以上
认证:集群节点需统一认证,需使用同一用户名和密码
运行:在预设的master节点执行
- 支持升级集群内核,升级后内核版本为:5.17.9
- 支持离线部署普通的k8s集群,k8s版本为:v1.21.3
- 支持离线部署高可用k8s集群,k8s版本为:v1.21.3
- K8S HA集群使用云原生的kube-vip,其自带VIP和负载均衡
- K8S集群默认安装图形化管理工具kuboard-v2
- K8S集群默认安装local-hostpath存储类
- K8S证书100年,且开启了自动轮询
- 内置容器镜像的功能:pull、push、save、load
以下提供了两种K8S集群方案,根据实际情况选择一种方案即可
高可用集群模式主机列表
IP 地址 | 主机名 | 角色 |
---|---|---|
192.168.1.201 | k8s-maste-noder01 | master | etcd | worker | kube-vip |
192.168.1.202 | k8s-master-node02 | master | etcd | worker | kube-vip |
192.168.1.203 | k8s-master-node03 | master | etcd | worker | kube-vip |
192.168.1.204 | k8s-worker-node1 | worker |
192.168.1.205 | k8s-worker-node3 | worker |
192.168.1.250 | / | 虚拟 IP 地址 |
普通集群模式主机列表
IP 地址 | 主机名 | 角色 |
---|---|---|
192.168.1.201 | k8s-maste-noder01 | master | etcd | worker |
192.168.1.202 | k8s-worker-node1 | worker |
192.168.1.203 | k8s-worker-node2 | worker |
注意:离线部署方式的主机必须配置网关
将kubeeasy文件上传至预设的master节点/root目录,然后赋予执行权限并移动到/usr/bin目录下
mv kubeeasy-v1.3.2.sh /usr/bin/kubeeasy && chmod +x /usr/bin/kubeeasy
使用kubeeasy在集群中安装软件包,包含远程连接sshpass等软件包
kubeeasy install depend \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000 \
--offline-file ./centos-7-rpms.tar.gz
使用kubeeasy在集群中创建ssh免秘钥,其中优化的ssh的连接以及配置了集群的免秘钥登录等
- 集群连通性检测-ssh
kubeeasy check ssh \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000
- 集群免秘钥设置
kubeeasy create ssh-keygen \
--master 192.168.1.201 \
--worker 192.168.1.202,192.168.1.203 \
--user root \
--password 000000
使用kubeeasy在集群中挂载数据盘,将其挂载到/data目录,后续的数据存储路径默认都是在/data目录下。(如果没有磁盘可以忽略此操作)
- 磁盘挂载(集群磁盘名相同时)
kubeeasy create mount-disk \
--host 192.168.1.201-192.168.1.203 \
--disk /dev/sdb \
--mount-dir /data \
--user root \
--password 000000
- 磁盘挂载(集群磁盘名不同时只能按顺序操作)
kubeeasy create mount-disk \
--host 192.168.1.201 \
--disk /dev/sdb \
--mount-dir /data \
--user root \
--password 000000
使用kubeeasy升级集群的内核,将其3.10的内核升级为5.14(建议升级内核)。脚本执行完后,会自动重启主机,以生效系统内核。
- 升级集群内核为5.x
kubeeasy install upgrade-kernel \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000 \
--offline-file ./kernel-rpms-v5.17.9.tar.gz
使用kubeeasy部署K8S集群,以下分为普通集群和高可用集群的安装方式,根据实际情况选择一种方案部署。安装后的K8S的版本为v1.21.3,使用docker作为容器运行时,网络组件使用calico网络,默认还安装kuboard图形化管理器和K8S存储类(openebs-hostpath),K8S的证书有效期为100年,且开启了证书轮换
如需更改K8S的Pod网段,修改--pod-cidr参数相应的值
- 安装k8s集群
kubeeasy install kubernetes \
--master 192.168.1.201 \
--worker 192.168.1.202,192.168.1.203 \
--user root \
--password 000000 \
--version 1.21.3 \
--pod-cidr 10.244.0.0/16 \
--offline-file ./kubeeasy-v1.3.2.tar.gz
- 安装高可用k8s集群(master节点个数必须大于等于3)
kubeeasy install kubernetes \
--master 192.168.1.201,192.168.1.202,192.168.1.203 \
--worker 192.168.1.204 \
--user root \
--password 000000 \
--version 1.21.3 \
--virtual-ip 192.168.1.250 \
--pod-cidr 10.244.0.0/16 \
--offline-file ./kubeeasy-v1.3.2.tar.gz
使用kubeeasy将集群重置(意思就是删除所有相关软件,恢复一个纯净的系统)
- 重置正常的K8S集群(会重置整个集群)
kubeeasy reset \
--user root \
--password 000000
- 强制重置指定的节点(如果节点不正常可以选择强制重置节点)
kubeeasy reset --force \
--master 192.168.1.201 \
--worker 192.168.1.202 \
--user root \
--password 000000
使用kubeeasy将新的节点加入K8S集群中
- 离线增加K8S节点
增加master节点只适用于高可用集群的模式
从普通的K8S集群转换为高可用的K8S集群点击 这里
# 需要先安装依赖包
kubeeasy install depend \
--host 192.168.1.204,192.168.1.205 \
--user root \
--password 000000 \
--offline-file ./centos-7-rpms.tar.gz
# 加入K8S集群
kubeeasy add \
--worker 192.168.1.204,192.168.1.205
--user root \
--password 000000 \
--offline-file ./kubeeasy-v1.3.2.tar.gz
使用kubeeasy将节点从K8S集群中删除
- 删除K8S节点
删除操作会重置节点,包括删除K8S服务、docker数据等清空操作。
kubeeasy delete \
--worker 192.168.1.202,192.168.1.203
--user root \
--password 000000
使用kubeeasy将节点从K8S集群中移除
- 移除K8S节点
移除操作会不会重置节点,只是从K8S集群中移除,并不会删除docker的数据。
kubeeasy remove \
--worker 192.168.1.202,192.168.1.203
--user root \
--password 000000
使用kubeeasy将容器镜像离线包分发到指定节点并读取,如test-images.tar.gz。
- 分发现有的容器镜像并读取
kubeeasy images load \
--host 192.168.1.201,192.168.1.201,192.168.1.203 \
--user root \
--password 000000 \
--offline-file test-images.tar.gz
使用kubeeasy将容器列表文件的镜像保存到指定目录、也可以将其上传到镜像仓库中,但前提是您需要先登录镜像仓库。
images-list.txt文件命名规范:
test :表示一个镜像包集,下方区域是镜像列表,保存后以test命名
- 保存镜像离线包
kubeeasy images save \
--images-file images-list.txt \
--images-dir ./images
- 推送镜像到仓库
docker login dockerhub.kubeeasy.local:5000 -u admin -p admin
kubeeasy images push \
--images-file images-list.txt \
--images-registry dockerhub.kubeeasy.local:5000/kongyu
集群优化系统配置
## 依赖于sshpass命令,需要先安装此命令
rpm -ivh https://mirrors.aliyun.com/centos/7/extras/x86_64/Packages/sshpass-1.06-2.el7.x86_64.rpm
kubeeasy install precondition \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000
集群使用命令
kubeeasy get command \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000 \
--cmd "hostname"
集群免秘钥设置
kubeeasy create ssh-keygen \
--master 192.168.1.201 \
--worker 192.168.1.202,192.168.1.203 \
--user root \
--password 000000
集群时间同步设置
kubeeasy create time \
--master 192.168.1.201 \
--worker 192.168.1.202,192.168.1.203 \
--user root \
--password 000000
集群系统指标检测(CPU Memory Disk)
kubeeasy check system \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000
集群连通性检测-ssh
kubeeasy check ssh \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000
集群连通性检测-ping
kubeeasy check ping \
--host 192.168.1.201-192.168.1.203
修改集群root密码
kubeeasy create password \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000 \
--new-password 123456
清除历史命令
kubeeasy set history \
--host 192.168.1.201-192.168.1.203 \
--user root \
--password 000000