KubeKey

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere/kubekey/workflows/CI/badge.svg?branch=master&event=push)]

English | 中文

从 v3.0.0 开始,KubeSphere 将基于 ansible 的安装程序更改为使用 Go 语言开发的名为 KubeKey 的新安装程序。使用 KubeKey,您可以轻松、高效、灵活地单独或整体安装 Kubernetes 和 KubeSphere。

有三种情况可以使用 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
  • Debian Buster, Stretch
  • CentOS/RHEL 7
  • SUSE Linux Enterprise Server 15

Kubernetes 版本

  • v1.15:   v1.15.12
  • v1.16:   v1.16.13
  • v1.17:   v1.17.9 (默认)
  • v1.18:   v1.18.6

查看更多支持的版本点击这里

注意: KubeSphere目前暂不支持运行在k8s 1.19.x之上。

要求和建议

  • 最低资源要求(仅对于最小安装 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。根据 KubeSphere 所安装版本的不同,您所需要安装的依赖可能也不同。请参考以下表格查看您是否需要提前在节点上安装有关的依赖。

Kubernetes 版本 ≥ 1.18 Kubernetes 版本 < 1.18
socat 必须安装 可选,但推荐安装
conntrack 必须安装 可选,但推荐安装
ebtables 可选,但推荐安装 可选,但推荐安装
ipset 可选,但推荐安装 可选,但推荐安装
  • 网络和 DNS 要求:

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

用法

获取安装程序可执行文件

  • 下载KubeKey可执行文件 Releases page

    下载解压后可直接使用。

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

    git clone https://github.com/kubesphere/kubekey.git
    cd kubekey
    ./build.sh
    

注意:

  • 在构建之前,需要先安装 Docker。
  • 如果无法访问 https://proxy.golang.org/,比如在大陆,请执行 build.sh -p

创建集群

快速开始

快速入门使用 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.17.9
    
  • 创建一个部署了 KubeSphere 的 Kubernetes 集群 (例如 --with-kubesphere v3.0.0

    ./kk create cluster --with-kubesphere [version]
    

高级用法

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

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

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

    ./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) 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 | --file) 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 | --file) 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

使用KubeKey安装K8S集群相关推荐

  1. 使用sealos安装K8S集群时,需确保节点的swap是关闭的

    使用sealos安装K8S集群时,需确保节点的swap是关闭的,否则会安装失败

  2. yum安装k8s集群(单master两个node、阿里云镜像源)

    yum安装k8s集群(单master节点方式) 一.环境准备 1.系统要求 按量付费阿里云主机三台 要求:centos7.6~7.8:以下为 https://kuboard.cn/install/in ...

  3. [提示]普通用户使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root

    如果使用普通用户,使用sealos安装k8s集群的话,默认还是会装到root用户的home目录/root kubeadm init --config=/root/kubeadm-config.yaml ...

  4. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用 ...

  5. k8s 安装_二进制安装k8s集群总结

    在之前文章里我们以学习为目的介绍了k8s集群的手动二进制安装,包括: ssl证书制作. docker的安装. 网络通讯组件flannel的安装. K8s基础组件的安装(etcd,master组件api ...

  6. 使用kubeadm安装k8s集群故障处理三则

    最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考 ...

  7. (亲测无坑)Centos7.x使用kubeadm安装K8s集群1.15.0版本

    基础环境配置 三台Centos7.x的服务器,主节点 cpu >=2,node节点>=1 注:(上述cpu为最低配置,否则集群安装部署会报错,无法启动,对其他硬件无硬性要求) 以下操作若无 ...

  8. 从零开始离线安装k8s集群

    本文主要用于在内网(离线)环境安装k8s集群:linux环境 centos7.6 主要步骤有: 安装docker 创建dokcer 私有镜像库 registry 安装kubernetes 安装flan ...

  9. 本地k8s集群搭建保姆级教程(4)-安装k8s集群Dashboard

    安装k8s集群管理UI 1 Dashboard安装 1.1 参考文档 Dashboard 是基于网页的 Kubernetes 用户界面. 你可以使用 Dashboard 将容器应用部署到 Kubern ...

最新文章

  1. SVN状态图标不显示
  2. 一个自定义 HBase Filter -“通过RowKeys来高性能获取数据”
  3. mongodump 备份还原
  4. 安卓布局参数类LayoutParams
  5. 超详细 图解 : IntelliJ IDEA 逆向生成 JAVA 实体类
  6. RabbitMQ 示例-生产者-消费者-direct-topic-fanout
  7. centos中安装配置nginx完成之后主机无法访问
  8. linux中级之ansible配置(roles)
  9. LSD计算机控制人体大脑,科学家发现了LSD对大脑的影响
  10. vlookup匹配的文字显示0_VLOOKUP函数用法大全
  11. Hadoop-HDFS总结(五)
  12. 在sqli-liabs学习SQL注入之旅(第十一关~第二十关)
  13. 命令行常用工具的替代品
  14. nagios安装使用指南
  15. 基于具体实验对脑部分区的具体调研
  16. Internet浏览器64位Java插件使用方法
  17. unity基础(8)——3D场景添加音频
  18. eclipse的源码访问路径问题
  19. 【免费使用】【redis】【数据库】快速使用redislabs免费套餐 注册和配置redis 缓存 数据库 nosql
  20. 图文详细解决Windows11设置删除pin开机登录验证

热门文章

  1. 完整议程、重磅嘉宾公布,第四范式AI新品发布会持续报名中
  2. C指针原理(46)-C应用技巧(1)
  3. vb.net2019- 机器学习ml.net情绪分析(2)
  4. 【CV】使用直方图处理进行颜色校正
  5. 【NLP】使用堆叠双向 LSTM 进行情感分析
  6. 【NLP】NLP实战篇之bert源码阅读(run_classifier)
  7. 【深度学习】人人都能看得懂的卷积神经网络——入门篇
  8. AI基础:机器学习的损失函数
  9. 爆火“捏脸”APP崽崽ZEPETO,如何开启虚拟世界的社交IP?
  10. 高并发IM系统架构优化实践