kubekey/README_zh-CN.md
Vadim Karyaev 5cf79a4adb
A small fix in README files - the --ui-path key was specified using a single hyphen (#2818)
Signed-off-by: Vadim Karyaev <vadim.karyaev@red-soft.ru>
Co-authored-by: Vadim Karyaev <vadim.karyaev@red-soft.ru>
2025-10-21 09:44:51 +08:00

5.3 KiB
Raw Permalink Blame History

CI

English | 中文

👋 欢迎使用KubeKey!

KubeKey 是一个开源的轻量的任务流程执行工具。提供了一种灵活、快速的方式来安装kubernetes。

KubeKey 通过了 CNCF kubernetes 一致性认证

对比3.x新特性

  1. 从kubernetes生命周期管理工具扩展为任务执行工具(流程设计参考Ansible)
  2. 支持多种方式管理任务模版git本地等。
  3. 支持多种节点连接方式。包括local、ssh、kubernetes、prometheus。
  4. 支持云原生方式自动化批量任务管理
  5. 高级特性UI页面暂未开放

安装kubekey

kubernetes中安装

通过helm安装kubekey。

helm upgrade --install --create-namespace -n kubekey-system kubekey config/kubekey

二进制

release 页面获取对应的二进制文件。

包含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:

  1. k8s_cluster: kubernetes集群。包含两个子group: kube_control_plane, kube_worker
  2. kube_control_plane: kubernetes集群中的control_plane节点组
  3. kube_worker: kubernetes集群中的worker节点组。
  4. etcd: 安装etcd集群的节点组。
  5. image_registry: 安装镜像仓库的节点组。包含harborregistry
  6. nfs: 安装nfs的节点组。

定义关键配置信息

kubekey使用 config 资源来定义节点的连接信息。
可使用 kk create config --with-kubernetes v1.33.1 来获取默认的inventory.yaml 资源。默认的config.yaml配置如下:

针对不同的kubernetes版本给出了不同默认config配置作为参考:

安装集群

kk create cluster -i inventory.yaml -c config.yaml

-i inventory.yaml不传时使用默认的inventory.yaml. 只会在执行的机器上安装kubernetes. -c config.yaml不传时使用默认的config.yaml. 安装 v1.33.1 版本的kubernetes

文档

项目模版编写规范
模板语法
参数定义
集群管理