KubeKey

KubeKey 是一个开源的轻量的任务流程执行工具。提供了一种灵活、快速的方式来安装kubernetes。
KubeKey 通过了 CNCF kubernetes 一致性认证
对比3.x新特性
- 从kubernetes生命周期管理工具扩展为任务执行工具(流程设计参考Ansible)
- 支持多种方式管理任务模版:git,本地等。
- 支持多种节点连接方式。包括:local、ssh、kubernetes、prometheus。
- 支持云原生方式自动化批量任务管理
- 高级特性:UI页面(暂未开放)
KubeKey 的几种使用场景:
- 仅安装 Kubernetes;
- 使用一个命令同时安装 Kubernetes 和 KubeSphere;
- 扩缩集群;
- 升级集群;
- 安装 Kubernetes 相关的插件(Chart 或 YAML)。
KubeKey 如何运作
下载 KubeKey 之后,您可以使用可执行文件 kk 来进行不同的操作。无论您是使用它来创建,扩缩还是升级集群,都必须事先使用 kk 准备配置文件。此配置文件包含集群的基本参数,例如主机信息、网络配置(CNI 插件以及 Pod 和 Service CIDR)、仓库镜像、插件(YAML 或 Chart)和可插拔组件选项(如果您安装 KubeSphere)。有关更多信息,请参见示例配置文件。
准备好配置文件后,您需要使用 ./kk 命令以及不同的标志来进行不同的操作。这之后,KubeKey 会自动安装 Docker,并拉取所有必要的镜像以进行安装。安装完成后,您还可以检查安装日志。
为什么选择 KubeKey
- 以前基于 ansible 的安装程序依赖于许多软件,例如 Python。KubeKey 由 Go 语言开发,可以消除在多种环境中出现的问题,确保成功安装。
- KubeKey 支持多种安装选项,例如 All-in-One、多节点安装以及离线安装。
- KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 Kubernetes 集群,使安装更简便,提高效率。与旧版的安装程序相比,它极大地节省了安装时间。
- KubeKey 提供内置高可用模式,支持一键安装高可用 Kubernetes 集群。
- KubeKey 旨在将集群作为对象来进行安装,即 CaaO。
安装kubekey
kubernetes 中安装
通过helm安装kubekey。
helm upgrade --install --create-namespace -n kubekey-system kubekey config/kubekey二进制
如果您能正常访问 GitHub/Googleapis
从 GitHub Release Page 下载 KubeKey 或者直接运行以下命令。
curl -sfL https://get-kk.kubesphere.io | VERSION=v4.0.1 sh -实际上下载地址如下(最新版本号可能会不同):
https://github.com/kubesphere/kubekey/releases/download/v4.0.1/kubekey-v4.0.1-linux-amd64.tar.gz可以直接本地浏览器下载!
如果您访问 GitHub/Googleapis 受限
首先运行以下命令,以确保您从正确的区域下载 KubeKey。
export KKZONE=cn运行以下命令来下载 KubeKey:
curl -sfL https://get-kk.kubesphere.io | VERSION=v4.0.1 sh -
mv kk /usr/local/bin/
chmod +x /usr/local/bin/kk包含UI页面的kubekey
UI 页面仅在 v4.0.0 及以上版本提供支持
VERSION=v4.0.0 WEB_INSTALLER_VERSION=v1.0.0 hack/downloadKubekey.sh
# run with UI
kk web --schema-path schema --ui-path dist如果当前目录有config.yaml文件。执行
./package.sh config.yaml来构建离线包
部署kubernetes
- 支持部署环境:Linux发行版
- almaLinux: 9.0 (未充分测试)
- centOS: 8
- debian: 10, 11
- kylin: V10SP3 (未充分测试)
- ubuntu: 18.04, 20.04, 22.04, 24.04.
- 支持的Kubernetes版本:v1.23.x ~ v1.33.x
requirement
- 一台或多台运行兼容 deb/rpm 的 Linux 操作系统的计算机;例如:Ubuntu 或 CentOS。
- 每台机器 2 GB 以上的内存,内存不足时应用会受限制。
- 用作控制平面节点的计算机上至少有 2 个 CPU。
- 集群中所有计算机之间具有完全的网络连接。你可以使用公共网络或专用网络
定义节点信息
kubekey使用 inventory 资源来定义节点的连接信息。
可使用 kk create inventory 来获取默认的inventory.yaml 资源。默认的inventory.yaml配置如下:
apiVersion: kubekey.kubesphere.io/v1
kind: Inventory
metadata:
name: default
spec:
hosts: # your can set all nodes here. or set nodes on special groups.
# node1:
# connector:
# type: ssh
# host: node1
# port: 22
# user: root
# password: 123456
groups:
# all kubernetes nodes.
k8s_cluster:
groups:
- kube_control_plane
- kube_worker
# control_plane nodes
kube_control_plane:
hosts:
- localhost
# worker nodes
kube_worker:
hosts:
- localhost
# etcd nodes when etcd_deployment_type is external
etcd:
hosts:
- localhost
# image_registry:
# hosts:
# - localhost
# nfs nodes for registry storage. and kubernetes nfs storage
# nfs:
# hosts:
# - localhost
inventory包含如下几个内置的group:
- k8s_cluster: kubernetes集群。包含两个子group: kube_control_plane, kube_worker
- kube_control_plane: kubernetes集群中的control_plane节点组
- kube_worker: kubernetes集群中的worker节点组。
- etcd: 安装etcd集群的节点组。
- image_registry: 安装镜像仓库的节点组。(包含harbor,registry)
- nfs: 安装nfs的节点组。
定义关键配置信息
kubekey使用 config 资源来定义节点的连接信息。
可使用 kk create config --with-kubernetes v1.33.1 来获取默认的inventory.yaml 资源。默认的config.yaml配置如下:
针对不同的kubernetes版本,给出了不同默认config配置作为参考:
- 安装 v1.23.x 版本的kubernetes 配置
- 安装 v1.24.x 版本的kubernetes 配置
- 安装 v1.25.x 版本的kubernetes 配置
- 安装 v1.26.x 版本的kubernetes 配置
- 安装 v1.27.x 版本的kubernetes 配置
- 安装 v1.28.x 版本的kubernetes 配置
- 安装 v1.29.x 版本的kubernetes 配置
- 安装 v1.30.x 版本的kubernetes 配置
- 安装 v1.31.x 版本的kubernetes 配置
- 安装 v1.32.x 版本的kubernetes 配置
- 安装 v1.33.x 版本的kubernetes 配置
安装集群
kk create cluster -i inventory.yaml -c config.yaml-i inventory.yaml不传时,使用默认的inventory.yaml. 只会在执行的机器上安装kubernetes.-c config.yaml不传时,使用默认的config.yaml. 安装 v1.33.1 版本的kubernetes
最后编辑:Jeebiz 更新时间:2025-11-26 16:57