KubeKey

Kubernetes 集群安装工具
授权协议 Apache
开发语言 Google Go
所属分类 开发工具、 安装制作工具
软件类型 开源软件
地区 国产
投 递 者 松霖
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

KubeKey(由 Go 语言开发)是一种全新的安装工具,替代了以前使用的基于 ansible 的安装程序。KubeKey 为您提供灵活的安装选择,您可以仅安装 Kubernetes,也可以同时安装 Kubernetes 和 KubeSphere。

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 旨在将群集作为对象来进行安装,即 CaaO。

下载 KubeKey

从 GitHub Release Page 下载 KubeKey 或者直接运行以下命令。

curl -sfL https://get-kk.kubesphere.io | VERSION=v1.0.1 sh -

备注

通过以上的命令,可以下载 KubeKey 的最新版本 (v1.0.1)。您可以更改命令中的版本号来下载特定的版本。

支持的环境

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 的良好开始。

命令

./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]

高级用法

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

  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

当指定安装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

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

相关文档

  • 使用kubeKey快速搭建Kubernetes集群 通过使用KubeKey 可以快速搭建Kubernetes的基础环境,以及安装KubeSphere环境 一、安装 kk # 很重要,不执行会造成国内数据拉取不下来 export KKZONE=cn # curl -sfL https://get-kk.kubesphere.io | VERSION=v1.2.1 sh - curl -sfL htt

  • 一、kubekey&KubeSphere简介 1、kubekey简介 kubeykey是KubeSphere基于Go 语言开发的kubernetes集群部署工具,使用 KubeKey,您可以轻松、高效、灵活地单独或整体安装Kubernetes和KubeSphere。 官网:KubeKey KubeKey可以用于以下三种安装场景: 仅安装 Kubernetes集群; 使用一个命令安装 Kuberne

  • KubeKey 是一个开源的 Kubernetes 集群自动化部署工具,它可以帮助用户快速、可靠地部署 Kubernetes 集群。KubeKey 支持多种部署场景,包括单节点、多节点、高可用、离线等。可以在 Linux、macOS 和 Windows 等操作系统上使用。 KubeKey 的主要特点包括: 简单易用:KubeKey 采用 YAML 文件进行配置,用户只需编写简单的 YAML 文件即

  • 一、推荐安装版本 K8S版本:1.21 KubeSphere版本:3.1.0 二、使用KubeSphere安装 利用KubeSphere提供KubeKey同时安装KubeSphere和K8S,安装步骤如下: 1. Update系统环境 yum -y update 2. 防火墙firewall的状态,如果启动的话,就关闭 firewall-cmd --state 3. 关闭防火墙 systemc

  • 1.使用 KubeKey 检索集群信息。以下命令会创建配置文件 (sample.yaml)。 ./kk create config --from-cluster 2.在配置文件中,将新节点的信息放在 hosts 和 roleGroups 之下。该示例添加了两个新节点(即 node1 和 node2)。这里的 master1 是现有节点。 ··· spec: hosts: - {name:

  • 基本介绍:KubeKey 是 KubeSphere 社区开源的一款高效集群部署工具,运行时默认使用 Docker , 也可对接 Containerd CRI-O iSula 等 CRI 运行时,且 ETCD 集群独立运行,支持与 K8s 分离部署,提高环境部署灵活性。 一、准备一台kubekey虚拟机 cpu;4 内存:8G 系统盘;100G 三台k8s host 192.168.5.

  • 使用kubeKey安装kubeSphere 使用kubeKey安装kubeSphere。如果你和作者一样在部署时下载遇到了约束可用参考该文章,该文档主要使用代理方案将包给提前下载了有些脚本更改了代理路径,希望对您有所帮助! 下载安装工具kubeKey 下载脚本 wget https://get-kk.kubesphere.io 编辑脚本替换成代理URL #!/bin/sh # Copyrigh

 相关资料
  • 如果您的独立的Consul集群或不想使用Consul的话,不需要执行以下命令。 以下命令是将docker版的consul集群安装在您的kubernetes集群上前提是前必须有持久化存储。 如果您还没有初始化持久化存储的,请在这里install/storage.html配置好存储类再安装consul集群。 安装 $ kubectl apply -f install/kubernetes/consul

  • K8s集群搭建 手动搭建kubernetes集群 解决k8s出现pod服务一直处于ContainerCreating状态的问题 kubernetes 安装遇到的坑 (1) kubernetes dashboard 安装 centos7.3 kubernetes/k8s 1.10 离线安装

  • Seafile 集群中,各seafile服务器节点之间数据共享的一个常用方法是使用NFS共享存储。在NFS上共享的对象应该只是文件,这里提供了一个关于如何共享和共享什么的教程。 如何配置NFS服务器和客户端超出了本wiki的范围,提供以下参考文献: Ubuntu: https://help.ubuntu.com/community/SettingUpNFSHowTo CentOS: http://

  • 本页概述了启动和运行Storm集群的步骤,如果您使用AWS,您应该查看storm-部署项目.storm-部署 在EC2上完全自动化配置和安装Storm集群. 它还为您设置Ganglia,以便您可以监视CPU,磁盘和网络使用情况. 如果您在运行Strom集群时遇到困难,请首先在 Troubleshooting 页寻求解决. 再者, 查看或者发送邮件列表. 下面是部署Storm集群的步骤总结: 设置

  • 本指南说明了如何手动安装 Ceph 软件包,此方法只适用于那些没采用部署工具(如 ceph-deploy 、 chef 、 juju 等)的用户。 Tip 你也可以用 ceph-deploy 安装 Ceph 软件包,也许它更方便,因为只需一个命令就可以把 ceph 安装到多台主机。 用 APT 安装 只要把正式版或开发版软件包源加入了 APT ,你就可以更新 APT 数据库并安装 Ceph 了:

  • 1、安装 1.1、下载 以linux下安装为例,首先下载安装包,下载地址:https://www.consul.io/downloads.html 下载后上传到 linux 服务器,或者直接在 linux 上下载,版本可自行替换 wget https://releases.hashicorp.com/consul/1.7.0/consul_1.7.0_linux_amd64.zip 1.2、解

  • 尝试保护集群时, Apache Storm 提供了一系列配置选项. 默认情况下, 所有验证和授权都被禁用, 但可以根据需要打开. 防火墙/操作系统 级别安全 您仍然可以拥有安全的 storm 集群, 而无需开启正式的身份验证和授权. 但是这样做通常需要配置您的操作系统来限制可以完成的操作. 即使您计划使用 Auth 运行群集, 通常也是一个好主意. 如何设置这些预防措施的具体细节有很大的不同, 超

  • 我正试图在我的kubernetes集群中安装Jenkins。当我探索的时候,我发现有两个方面。我理解的第一种方法是,安装詹金斯主从。在这里,我找到了在kubernetes集群上安装Jenkins主从代理的文档。第二种方法是我发现Kubernetes插件的用法。如果我们用这种方法,只需要安装master和配置插件。当创建一个部署时,从吊舱将自动工作。 在第一种方法中,我们需要定义安装主从机的工作机器