kubesz(一键安装k8s)

引言

Kubernetes(K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。kubeasz 是一个用于快速搭建 Kubernetes 高可用集群的项目,它基于 Ansible,通过提供一套简单、易用的配置,使得在多种环境中部署 K8s 集群变得容易。

kubeasz 简介

kubeasz(Kubernetes Easy Setup with Ansible)是一个开源项目,旨在简化 Kubernetes 集群的部署过程。它使用 Ansible 作为基础设施管理工具,通过预定义的剧本和配置模板,自动化整个 K8s 集群的搭建流程。

还在为部署K8S繁琐的程序发愁吗,开源软件kubeasz可以一键部署K8S大大节省运维成本。

首先确保你的机器规划,然后之前没有安装K8S防止冲突。

项目参考:https://github.com/easzlab/kubeasz

由于国内限制可能登录不上可以用现成的已打包好文件资源已经放到文件中了从第2步开始:

https://download.csdn.net/download/m0_59744084/89397853

将文件放入你所在目录下,然后chmod+x就可以了

安装示例:

配置从部署节点能够ssh免密登陆所有节点,并且设置python软连接

复制代码
ssh-copy-id $你的所有节点ip
bash 复制代码
1.下载工具脚本ezdown,举例使用kubeasz版本3.5.0

export release=3.5.0
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
2.下载kubeasz代码、二进制、默认容器镜像(更多关于ezdown的参数,运行./ezdown 查看)

# 国内环境
./ezdown -D
# 海外环境
#./ezdown -D -m standard
3.【可选】下载额外容器镜像(cilium,flannel,prometheus等)

# 按需下载
./ezdown -X flannel
./ezdown -X prometheus
...
4.【可选】下载离线系统包 (适用于无法使用yum/apt仓库情形)

./ezdown -P
5.上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz

 创建集群配置实例

# 容器化运行kubeasz
./ezdown -S

# 创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01
2021-01-19 10:48:23 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2021-01-19 10:48:23 DEBUG set version of common plugins
2021-01-19 10:48:23 DEBUG cluster k8s-01: files successfully created.
2021-01-19 10:48:23 INFO next steps 1: to config '/etc/kubeasz/clusters/k8s-01/hosts'
2021-01-19 10:48:23 INFO next steps 2: to config '/etc/kubeasz/clusters/k8s-01/config.yml'
复制代码

到这一步的时候就可以更改**/etc/kubeasz/clusters/k8s-01/hosts** 和**/etc/kubeasz/clusters/k8s-01/config.yml**文件进行部署了

具体更改哪些:

1.hosts文件里(必须要改)

etcd数据库的ip

你规划上机器作为master和node节点的ip和主机名,我这里示范只用了两台可以根据你的需求来。

还有其他一些例如harbor配置可以自行开放,默认安装不安装。

2config.yml 文件里(必须要改):

设置master节点的ip,不然会报错。

然后就可以运行了

复制代码
dk ezctl setup k8s-01 all

等待一段时间后,出现:

就说明成功了

检查一下节点:

成功了 记得把/etc/kubeasz/bin/kubectl移动到/usr/local/bin/目录下

其他的/etc/kubeasz/bin/也都集成在了里面十分方便不用自己去一个个下载了

cp /etc/kubeasz/bin/kubectl /usr/local/bin/

另外他的kubeconfig文件放在了/etc/kubeasz/clusters/k8s-01/目录下,可以自行拿去下载

遇到的某些坑注意事项:

可能就是因为防火墙导致etcd连接不上K8S api

使用systemctl stop firewalld就可以了

另外:

项目根据k8s版本提供不同的默认容器运行时:

k8s 版本 < 1.24 时,支持docker containerd 可选

k8s 版本 >= 1.24 时,仅支持 containerd

由于K8S弃用了docker。使得K8S安装>=1.24时使用了containerd ,这时就要把那个crictl放到/usr/local/bin目录下

所以网上说之所有镜像不生效是因为可能你的K8S集群可能使用了containerd

移动命令:

mv /etc/kubeasz/bin/containerd-bin/crictl /usr/local/bin/

介绍:

ctr是containerd的一个客户端工具
crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序
crictl 则直接对应了命名空间 k8s.io,即"crictl image list"等同于"ctr -n=k8s.io image list"
所以crictl是kubernetes专属的containerd管理命令,crictl -v 输出的是当前 k8s 的版本。

使用crictl images可以看到容器了有关这些的镜像我已经打包好了可以自行查看:

https://download.csdn.net/download/m0_59744084/89397853

命令ctr -n=k8s.io images import calico.tar.gz 导入镜像

相关推荐
虎头金猫15 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS15 小时前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun17 小时前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)18 小时前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang18 小时前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren18 小时前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿21 小时前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl1 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、1 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove1 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21