首页 > 其他分享 >kubekey是一个k8s轻量工具

kubekey是一个k8s轻量工具

时间:2024-08-04 12:06:43浏览次数:13  
标签:配置文件 Kubernetes -- 轻量 kubekey kk 集群 k8s 安装

Skip to content  

Navigation Menu

                   

Breadcrumbs

  1. kubekey
/

README_zh-CN.md

  t  

Latest commit

eltocieareltociear docs: add Japanese README (#2329) 7d18944 · last week

History

  430 lines (328 loc) · 42.3 KB  

File metadata and controls

Raw    

KubeKey

CI

English | 中文 | 日本語

KubeKey是一个开源的轻量级工具,用于部署Kubernetes集群。它提供了一种灵活、快速、方便的方式来安装Kubernetes/K3s、Kubernetes/K3s和KubeSphere,以及相关的云原生附加组件。它也是扩展和升级集群的有效工具。

此外,KubeKey还支持定制离线包(artifact),方便用户在离线环境下快速部署集群。

KubeKey 通过了 CNCF kubernetes 一致性认证

有三种情况可以使用 KubeKey。

  • 仅安装 Kubernetes
  • 用一个命令中安装 Kubernetes 和 KubeSphere
  • 首先安装 Kubernetes,然后使用 ks-installer 在其上部署 KubeSphere

重要提示:Kubekey 将会帮您安装 Kubernetes,若已有 Kubernetes 集群请参考 在 Kubernetes 之上安装 KubeSphere

优势

  • 基于 Ansible 的安装程序具有大量软件依赖性,例如 Python。KubeKey 是使用 Go 语言开发的,可以消除在各种环境中出现的问题,从而提高安装成功率。
  • KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 K8s 集群,以降低安装复杂性并提高效率。与较早的安装程序相比,它将大大节省安装时间。
  • KubeKey 支持将集群从 all-in-one 扩展到多节点集群甚至 HA 集群。
  • KubeKey 旨在将集群当作一个对象操作,即 CaaO。

支持的环境

Linux 发行版

  • Ubuntu 16.04, 18.04, 20.04, 22.04
  • Debian Bullseye, Buster, Stretch
  • CentOS/RHEL 7
  • AlmaLinux 9.0
  • SUSE Linux Enterprise Server 15

建议使用 Linux Kernel 版本: 4.15 or later 可以通过命令 uname -srm 查看 Linux Kernel 版本。

Kubernetes 版本

  • v1.19:   v1.19.15
  • v1.20:   v1.20.10
  • v1.21:   v1.21.14
  • v1.22:   v1.22.15
  • v1.23:   v1.23.10 (default)
  • v1.24:   v1.24.7
  • v1.25:   v1.25.3

查看更多支持的版本:
Kubernetes 版本
K3s 版本

要求和建议

  • 最低资源要求(仅对于最小安装 KubeSphere):
    • 2 核虚拟 CPU
    • 4 GB 内存
    • 20 GB 储存空间

/var/lib/docker 主要用于存储容器数据,在使用和操作过程中会逐渐增大。对于生产环境,建议 /var/lib/docker 单独挂盘。

  • 操作系统要求:
    • SSH 可以访问所有节点。
    • 所有节点的时间同步。
    • sudo/curl/openssl 应在所有节点使用。
    • docker 可以自己安装,也可以通过 KubeKey 安装。
    • Red Hat 在其 Linux 发行版本中包括了 SELinux,建议关闭SELinux或者将SELinux的模式切换为Permissive[宽容]工作模式
  • 建议您的操作系统环境足够干净 (不安装任何其他软件),否则可能会发生冲突。
  • 如果在从 dockerhub.io 下载镜像时遇到问题,建议准备一个容器镜像仓库 (加速器)。为 Docker 守护程序配置镜像加速
  • 默认情况下,KubeKey 将安装 OpenEBS 来为开发和测试环境配置 LocalPV,这对新用户来说非常方便。对于生产,请使用 NFS/Ceph/GlusterFS 或商业化存储作为持久化存储,并在所有节点中安装相关的客户端 。
  • 如果遇到拷贝时报权限问题Permission denied,建议优先考虑查看SELinux的原因
  • 依赖要求:

KubeKey 可以同时安装 Kubernetes 和 KubeSphere。在版本1.18之后,安装kubernetes前需要安装一些依赖。你可以参考下面的列表,提前在你的节点上检查并安装相关依赖。

 Kubernetes 版本 ≥ 1.18
socat 必须安装
conntrack 必须安装
ebtables 可选,但推荐安装
ipset 可选,但推荐安装
ipvsadm 可选,但推荐安装
  • 网络和 DNS 要求:
    • 确保 /etc/resolv.conf 中的 DNS 地址可用。否则,可能会导致集群中出现某些 DNS 问题。
    • 如果您的网络配置使用防火墙或安全组,则必须确保基础结构组件可以通过特定端口相互通信。建议您关闭防火墙或遵循链接配置:网络访问

用法

获取安装程序可执行文件

  • 使用脚本获取 KubeKey

    如果无法访问 https://github.com, 请先执行 export KKZONE=cn.

    curl -sfL https://get-kk.kubesphere.io | sh -
    
     
  • 下载KubeKey可执行文件 Releases page

    下载解压后可直接使用。

  • 从源代码生成二进制文件

    git clone https://github.com/kubesphere/kubekey.git
    cd kubekey
    make kk
     

创建集群

快速开始

快速入门使用 all-in-one 安装,这是熟悉 KubeSphere 的良好开始。

注意: 由于 Kubernetes 暂不支持大写 NodeName, hostname 中包含大写字母将导致后续安装过程无法正常结束

命令

如果无法访问 https://storage.googleapis.com, 请先执行 export KKZONE=cn.

./kk create cluster [--with-kubernetes version] [--with-kubesphere version]
 
例子
  • 使用默认版本创建一个纯 Kubernetes 集群

    ./kk create cluster
     
  • 创建指定一个(支持的版本)的 Kubernetes 集群

    ./kk create cluster --with-kubernetes v1.19.8
     
  • 创建一个部署了 KubeSphere 的 Kubernetes 集群 (例如 --with-kubesphere v3.1.0

    ./kk create cluster --with-kubesphere [version]
     
  • 创建一个指定的 container runtime 的 Kubernetes 集群(docker, crio, containerd and isula)

    ./kk create  cluster --container-manager containerd
     

高级用法

您可以使用高级安装来控制自定义参数或创建多节点集群。具体来说,通过指定配置文件来创建集群。

如果无法访问 https://storage.googleapis.com, 请先执行 export KKZONE=cn.

  1. 首先,创建一个示例配置文件

    ./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
     

    例子:

    • 使用默认配置创建一个示例配置文件。您也可以指定文件名称或文件所在的文件夹。

      ./kk create config [-f ~/myfolder/config-sample.yaml]
       
    • 同时安装 KubeSphere

      ./kk create config --with-kubesphere
       
  2. 根据您的环境修改配置文件 config-sample.yaml

注意: 由于 Kubernetes 暂不支持大写 NodeName, worker 节点名中包含大写字母将导致后续安装过程无法正常结束

当指定安装KubeSphere时,要求集群中有可用的持久化存储。默认使用localVolume,如果需要使用其他持久化存储,请参阅 addons 配置。

  1. 使用配置文件创建集群。

    ./kk create cluster -f ~/myfolder/config-sample.yaml
     

启用多集群管理

默认情况下,Kubekey 将仅安装一个 Solo 模式的单集群,即未开启 Kubernetes 多集群联邦。如果您希望将 KubeSphere 作为一个支持多集群集中管理的中央面板,您需要在 config-example.yaml 中设置 ClusterRole。关于多集群的使用文档,请参考 如何启用多集群

开启可插拔功能组件

KubeSphere 从 2.1.0 版本开始对 Installer 的各功能组件进行了解耦,快速安装将默认仅开启最小化安装(Minimal Installation),Installer 支持在安装前或安装后自定义可插拔的功能组件的安装。使最小化安装更快速轻量且资源占用更少,也方便不同用户按需选择安装不同的功能组件。

KubeSphere 有多个可插拔功能组件,功能组件的介绍可参考 配置示例。您可以根据需求,选择开启安装 KubeSphere 的可插拔功能组件。我们非常建议您开启这些功能组件来体验 KubeSphere 完整的功能以及端到端的解决方案。请在安装前确保您的机器有足够的 CPU 与内存资源。开启可插拔功能组件可参考 开启可选功能组件

添加节点

将新节点的信息添加到集群配置文件,然后应用更改。

./kk add nodes -f config-sample.yaml
 

删除节点

通过以下命令删除节点,nodename指需要删除的节点名。

./kk delete node <nodeName> -f config-sample.yaml
 

删除集群

您可以通过以下命令删除集群:

  • 如果您以快速入门(all-in-one)开始:
./kk delete cluster
 
  • 如果从高级安装开始(使用配置文件创建的集群):
./kk delete cluster [-f config-sample.yaml]
 

集群升级

单节点集群

升级集群到指定版本。

./kk upgrade [--with-kubernetes version] [--with-kubesphere version] 
 
  • --with-kubernetes 指定kubernetes目标版本。
  • --with-kubesphere 指定kubesphere目标版本。

多节点集群

通过指定配置文件对集群进行升级。

./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --filename) path]
 
  • --with-kubernetes 指定kubernetes目标版本。
  • --with-kubesphere 指定kubesphere目标版本。
  • -f 指定集群安装时创建的配置文件。

注意: 升级多节点集群需要指定配置文件. 如果集群非kubekey创建,或者创建集群时生成的配置文件丢失,需要重新生成配置文件,或使用以下方法生成。

Getting cluster info and generating kubekey's configuration file (optional).

./kk create config [--from-cluster] [(-f | --filename) path] [--kubeconfig path]
 
  • --from-cluster 根据已存在集群信息生成配置文件.
  • -f 指定生成配置文件路径.
  • --kubeconfig 指定集群kubeconfig文件.
  • 由于无法全面获取集群配置,生成配置文件后,请根据集群实际信息补全配置文件。

启用 kubectl 自动补全

KubeKey 不会启用 kubectl 自动补全功能。请参阅下面的指南并将其打开:

先决条件:确保已安装 bash-autocompletion 并可以正常工作。

# 安装 bash-completion
apt-get install bash-completion

# 将 completion 脚本添加到你的 ~/.bashrc 文件
echo 'source <(kubectl completion bash)' >>~/.bashrc

# 将 completion 脚本添加到 /etc/bash_completion.d 目录
kubectl completion bash >/etc/bash_completion.d/kubectl
 

更详细的参考可以在这里找到。

相关文档

贡献者 ✨

欢迎任何形式的贡献! 感谢这些优秀的贡献者,是他们让我们的项目快速成长。

pixiake
pixiake

标签:
配置文件,Kubernetes,--,轻量,kubekey,kk,集群,k8s,安装
From: https://www.cnblogs.com/cheyunhua/p/18341595

相关文章

  • k8s-Pod滚动重启方法
    在Kubernetes中,有多种方法可以进行滚动重启Pod。以下是几种常用的方法:一、通过修改Pod的YAML部署文件进行滚动更新通过修改Pod的YAML部署文件并应用这些更改,可以触发Pod的滚动更新。具体步骤如下:修改Pod的YAML文件,使其内容发生变化(例如更新镜像版本或环境变......
  • 19. rs、deploy和Jenkins集成K8S实现CICD实战
    1.rs控制器1.作用可以实现Pod的副本控制。相比rc资源,其功能性更强且更加轻量级。2.案例1-rs实现类似rc的功能[root@master231rs]#cat01-rs-xiuxian-matchLabels.yamlapiVersion:apps/v1kind:ReplicaSetmetadata:name:rs-xiuxianspec:#指定Pod的副本数量r......
  • 【K8s】专题八:Kubernetes 服务调度详解
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、订阅、转发!欢迎扫码关注个人公众号!目录一、基本介绍二、工作原理三、节点绑定四、亲和性调度1、亲和性类型2、亲和性规则3、NodeAffinity4、PodAffinity五、反亲和性调度1、反......
  • k8s
    K8sPod:自主式Pod:死亡后没有控制器将其拉起控制器管理的Pod:死亡后控制器能够将其拉起Pod内容器:当一个Pod创建后,会立即在Pod内创建一个pause容器,该Pod内其他容器公用该容器的网络协议栈;因此,一个Pod中两个容器的端口不能相同,一个容器访问另一个容器的端口,直接用l......
  • 【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器
    【【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器一、项目介绍1.1项目简介1.2使用方法二、本次实践介绍2.1本地环境规划2.2本次实践介绍三、本地环境检查3.1安装Docker环境3.2检查Docker服务状态3.3检查Docker版本3.4检查docke......
  • kubeasz 制作k8s 集群离线安装包
    转载:kubeasz制作k8s集群离线安装包kubeasz制作k8s集群离线安装包大家好,欢迎来到运维有术本文介绍了,利用ezdown制作kubeasz离线部署k8s集群所需的离线安装包。使用kubeasz离线安装k8s集群需要下载四个部分:kubeasz项目代码二进制文件(k8s、etcd、container......
  • 低代码如何借助 K8s 实现高并发支持?
    引言在当今这个数字化时代,互联网的普及和技术的飞速发展使得应用程序面临着前所未有的挑战,其中最为显著的就是高并发访问的需求。随着用户数量的激增和业务规模的扩大,如何确保应用在高并发场景下依然能够稳定运行、快速响应,成为了所有开发者和技术团队必须面对的重要课题。Kuber......
  • kubeadm部署k8s集群
    目录1.环境准备2.升级内核3.所有节点安装docker4.安装kubeadm,kubelet和kubectl5.高可用配置6.部署K8S集群7.所有节点部署网络插件flannel8.部署Dashboard可视化面板9.更新k8s证书有效期1.环境准备7-2192.168.9.210master017-5192.168.9.120master027-7192.168.9.......
  • 一图看懂Git、HTTPS、Docker、k8s和微服务
    一图看懂Git、HTTPS、Docker、k8s和微服务......
  • 使用Velero备份K8S资源,看这篇干货就够了
    一、Velero简介 Velero提供备份和恢复Kubernetes集群资源和持久卷的工具。Velero功能:对群集进行备份,并在丢失时进行还原。将集群资源迁移到其他集群。Velero包括:在群集上运行的服务器在本地运行的命令行客户端开源地址:https://github.com/vmware-tanzu/velero官方......