这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

文档

This is a placeholder page that shows you how to use this template site.

This section is where the user documentation for your project lives - all the information your users need to understand and successfully use your project.

For large documentation sets we recommend adding content under the headings in this section, though if some or all of them don’t apply to your project feel free to remove them or add your own. You can see an example of a smaller Docsy documentation site in the Docsy User Guide, which lives in the Docsy theme repo if you’d like to copy its docs section.

Other content such as marketing material, case studies, and community updates should live in the About and Community pages.

Find out how to use the Docsy theme in the Docsy User Guide. You can learn more about how to organize your documentation (and how we organized this site) in Organizing Your Content.

1 - 快速开始

快速搭建平台使用功能

对于初次接触 KubeClipper 并想快速上手的用户,建议使用 All-in-One 安装模式,它能够帮助您零配置快速部署 KubeClipper。

准备工作

KubeClipper 本身并不会占用太多资源,但是为了后续更好的运行 Kubernetes 建议硬件配置不低于最低要求。

您仅需参考以下对机器硬件和操作系统的要求准备一台主机。

硬件推荐配置

  • 确保您的机器满足最低硬件要求:CPU >= 2 核,内存 >= 2GB。
  • 操作系统:CentOS 7.x / Ubuntu 18.04 / Ubuntu 20.04。

节点要求

  • 节点必须能够通过 SSH 连接。
  • 节点上可以使用 sudo / curl / wget / tar 命令。

建议您的操作系统处于干净状态(不安装任何其他软件),否则可能会发生冲突。

部署 KubeClipper

下载 kcctl

KubeClipper 提供了命令行工具🔧 kcctl 以简化运维工作,您可以直接使用以下命令下载最新版 kcctl:

# curl -sfL https://oss.kubeclipper.io/kcctl.sh | sh -
# 如果你在中国, 你可以在安装时使用 cn  环境变量, 此时我们会使用 registry.aliyuncs.com/google_containers 代替 k8s.gcr.io
curl -sfL https://oss.kubeclipper.io/kcctl.sh | KC_REGION=cn sh -

您也可以在 GitHub Release Page 下载指定版本。

通过以下命令检测是否安装成功:

kcctl version

开始安装

在本快速入门教程中,您只需执行一个命令即可安装 KubeClipper,其模板如下所示:

kcctl deploy  [--user root] (--passwd SSH_PASSWD | --pk-file SSH_PRIVATE_KEY)

若使用 ssh passwd 方式则命令如下所示:

kcctl deploy --user root --passwd $SSH_PASSWD

私钥方式如下:

kcctl deploy --user root --pk-file $SSH_PRIVATE_KEY

您只需要提供 ssh user 以及 ssh passwd 或者 ssh 私钥即可在本机部署 KubeClipper。

执行该命令后,Kcctl 将检查您的安装环境,若满足条件将会进入安装流程。在打印出如下的 KubeClipper banner 后即表示安装完成。

 _   __      _          _____ _ _
| | / /     | |        /  __ \ (_)
| |/ / _   _| |__   ___| /  \/ |_ _ __  _ __   ___ _ __
|    \| | | | '_ \ / _ \ |   | | | '_ \| '_ \ / _ \ '__|
| |\  \ |_| | |_) |  __/ \__/\ | | |_) | |_) |  __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
                                 | |   | |
                                 |_|   |_|

登录控制台

安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。

console

您可以使用默认帐号密码 admin / Thinkbig1 进行登录。

您可能需要配置端口转发规则并在安全组中开放端口,以便外部用户访问控制台。

创建 k8s 集群

部署成功后您可以使用 kcctl 工具或者通过控制台创建 k8s 集群。在本快速入门教程中使用 kcctl 工具进行创建。

首先使用默认帐号密码进行登录获取 token,便于后续 kcctl 和 kc-server 进行交互。

kcctl login -H http://localhost -u admin -p Thinkbig1

然后使用以下命令创建 k8s 集群:

NODE=$(kcctl get node -o yaml|grep ipv4DefaultIP:|sed 's/ipv4DefaultIP: //')

kcctl create cluster --master $NODE --name demo --untaint-master

大概 3 分钟左右即可完成集群创建,也可以使用以下命令查看集群状态

kcctl get cluster -o yaml|grep status -A5

您也可以进入控制台查看实时日志。

进入 Running 状态即表示集群安装完成,您可以使用 kubectl get cs 命令来查看集群健康状况。

1.1 - 部署AIO

部署AIO环境

对于初次接触 KubeClipper 并想快速上手的用户,建议使用 All-in-One 安装模式,它能够帮助您零配置快速部署 KubeClipper。

部署 KubeClipper

下载 kcctl

KubeClipper 提供了命令行工具🔧 kcctl 以简化运维工作,您可以直接使用以下命令下载最新版 kcctl:

# curl -sfL https://oss.kubeclipper.io/kcctl.sh | sh -
# 如果你在中国, 你可以在安装时使用 cn  环境变量, 此时我们会使用 registry.aliyuncs.com/google_containers 代替 k8s.gcr.io
curl -sfL https://oss.kubeclipper.io/kcctl.sh | KC_REGION=cn sh -

您也可以在 GitHub Release Page 下载指定版本。

通过以下命令检测是否安装成功:

kcctl version

开始安装

在本快速入门教程中,您只需执行一个命令即可安装 KubeClipper,其模板如下所示:

kcctl deploy  [--user root] (--passwd SSH_PASSWD | --pk-file SSH_PRIVATE_KEY)

若使用 ssh passwd 方式则命令如下所示:

kcctl deploy --user root --passwd $SSH_PASSWD

私钥方式如下:

kcctl deploy --user root --pk-file $SSH_PRIVATE_KEY

您只需要提供 ssh user 以及 ssh passwd 或者 ssh 私钥即可在本机部署 KubeClipper。

执行该命令后,Kcctl 将检查您的安装环境,若满足条件将会进入安装流程。在打印出如下的 KubeClipper banner 后即表示安装完成。

 _   __      _          _____ _ _
| | / /     | |        /  __ \ (_)
| |/ / _   _| |__   ___| /  \/ |_ _ __  _ __   ___ _ __
|    \| | | | '_ \ / _ \ |   | | | '_ \| '_ \ / _ \ '__|
| |\  \ |_| | |_) |  __/ \__/\ | | |_) | |_) |  __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
                                 | |   | |
                                 |_|   |_|

登录控制台

安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。

console

您可以使用默认帐号密码 admin / Thinkbig1 进行登录。

您可能需要配置端口转发规则并在安全组中开放端口,以便外部用户访问控制台。

创建 k8s 集群

部署成功后您可以使用 kcctl 工具或者通过控制台创建 k8s 集群。在本快速入门教程中使用 kcctl 工具进行创建。

首先使用默认帐号密码进行登录获取 token,便于后续 kcctl 和 kc-server 进行交互。

kcctl login -H http://localhost -u admin -p Thinkbig1

然后使用以下命令创建 k8s 集群:

NODE=$(kcctl get node -o yaml|grep ipv4DefaultIP:|sed 's/ipv4DefaultIP: //')

kcctl create cluster --master $NODE --name demo --untaint-master

大概 3 分钟左右即可完成集群创建,也可以使用以下命令查看集群状态

kcctl get cluster -o yaml|grep status -A5

您也可以进入控制台查看实时日志。

进入 Running 状态即表示集群安装完成,您可以使用 kubectl get cs 命令来查看集群健康状况。

1.2 - 使用 Kubeclipper 离线创建 k8s 集群

如何使用 KC 平台离线创建 k8s 集群

1. 进入创建界面

登录 Kubeclipper 平台后点击如图所示按钮,进入集群创建界面

2. 配置集群节点

按照文字提示完成输入集群名称、选择节点等步骤

注意: master 节点数量不能为偶数

3. 配置集群

此步骤用于配置集群网络以及数据库、容器运行时等组件

选择离线安装并填写首先搭建好的镜像仓库地址

4. 配置存储

选择 nfs 存储,按照文字提示填写相应内容

5. 安装完成

完成所有配置确认安装

安装成功,集群正常运行

2 - 概述

Manage kubernetes in the most light and convenient way ☸️

3 - 部署文档

Low level reference docs for your project.

This is a placeholder page that shows you how to use this template site.

If your project has an API, configuration, or other reference - anything that users need to look up that’s at an even lower level than a single task - put (or link to it) here. You can serve and link to generated reference docs created using Doxygen, Javadoc, or other doc generation tools by putting them in your static/ directory. Find out more in Adding static content. For OpenAPI reference, Docsy also provides a Swagger UI layout and shortcode that renders Swagger UI using any OpenAPI YAML or JSON file as source.

3.1 - 部署 HA

通过简单的操作部署一个高可用的 kubeclipper

本文档旨在通过简单的操作部署一个 HA 版本的 kubeclipper。

如果只是想简单体验一下,请参考 QuickStart 部署 AIO 环境。

准备工作

HA 部署注意事项:

  • kubeclipper 使用 etcd 作为后端存储,为了保证高可用,建议使用 3 节点及以上来部署。
  • 生产环境建议 server 节点和 agent 节点分离,避免某一主机同时作为 server 节点和 agent 节点。

主机要求:您仅需参考 准备工作 中对机器硬件和操作系统的要求准备多台主机。

部署 KubeClipper

下载 kcctl

KubeClipper 提供了命令行工具🔧 kcctl 以简化运维工作,您可以直接使用以下命令下载最新版 kcctl:

# curl -sfL https://oss.kubeclipper.io/kcctl.sh | sh -
# 如果你在中国, 你可以在安装时使用 cn  环境变量, 此时我们会使用 registry.aliyuncs.com/google_containers 代替 k8s.gcr.io
curl -sfL https://oss.kubeclipper.io/kcctl.sh | KC_REGION=cn sh -

您也可以在 GitHub Release Page 下载指定版本。

通过以下命令检测是否安装成功:

kcctl version

开始安装

您只需执行一个命令即可安装 KubeClipper,其模板如下所示:

kcctl deploy  [--user root] (--passwd SSH_PASSWD | --pk-file SSH_PRIVATE_KEY) (--server SERVER_NODES) (--agent AGENT_NODES)

若使用 ssh passwd 方式则命令如下所示:

kcctl deploy --user root --passwd $SSH_PASSWD --server SERVER_NODES --agent AGENT_NODES

私钥方式如下:

kcctl deploy --user root --pk-file $SSH_PRIVATE_KEY --server SERVER_NODES --agent AGENT_NODES

您只需要提供 ssh user 以及 ssh passwd 或者 ssh 私钥即可在对应节点部署 KubeClipper。

本教程使用 私钥 方式进行部署,具体命令如下:

kcctl deploy --server 192.168.10.110,192.168.10.111,192.168.10.112 --agent 192.168.10.113,192.168.10.114,192.168.10.115 --pk-file ~/.ssh/id_rsa --pkg https://oss.kubeclipper.io/release/v1.1.0/kc-amd64.tar.gz

该命令指定 kubeclipper 包含 3 server 节点,3 agent 节点。

您可以访问 GitHub Release Page 查看当前 KubeClipper 的 Release 版本,来修改 pkg 参数中的版本号。

比如在 v1.2.0 版本 release 之后您可以指定 –pkg 为 https://oss.kubeclipper.io/release/v1.2.0/kc-amd64.tar.gz 来安装 v1.2.0 版本。

执行该命令后,Kcctl 将检查您的安装环境,若满足条件将会进入安装流程。在打印出如下的 KubeClipper banner 后即表示安装完成。

 _   __      _          _____ _ _
| | / /     | |        /  __ \ (_)
| |/ / _   _| |__   ___| /  \/ |_ _ __  _ __   ___ _ __
|    \| | | | '_ \ / _ \ |   | | | '_ \| '_ \ / _ \ '__|
| |\  \ |_| | |_) |  __/ \__/\ | | |_) | |_) |  __/ |
\_| \_/\__,_|_.__/ \___|\____/_|_| .__/| .__/ \___|_|
                                 | |   | |
                                 |_|   |_|

登录控制台

安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。 console

您可以使用默认帐号密码 admin / Thinkbig1 进行登录。

您可能需要配置端口转发规则并在安全组中开放端口,以便外部用户访问控制台。

4 - 使用手册

用户使用手册

4.1 - 集群管理

KubeClipper 集群管理功能使用指南

创建集群

您可以通过向导式的页面创建 K8S 集群,并安装CNI、CSI等所需插件。也可以提前保存好集群模版,选择模版后快速创建集群。

创建集群准备工作

  1. 您需要准备充足的可用节点,如需添加节点,参见“添加节点”教程。

  2. 准备好需要部署的 K8S、CRI、calico、CSI 和其他插件的镜像或二进制文件,kubeclipper 提供了推荐的版本,您可以根据平台所处网络环境,选择在线 / 离线后,直接在页面上选取使用。您也可以将部署所需的镜像上传至自己的镜像仓库,并在部署时指定。更多安装配置,参考以下表格:

    页面配置配置包/镜像来源
    在线(公网环境)

    镜像仓库为空
    1. 配置包来源:从 kubeclipper.io 下载。


    2. 镜像拉取方式:镜像默认从官方镜像仓库拉取,如k8s镜像从 k8s.gcr.io 拉取、calico 从 docker.io 拉取。
    在线(公网环境)

    镜像仓库指定
    1. 配置包来源:从 kubeclipper.io 下载。


    2. 镜像拉取方式:从填写的镜像仓库拉取,组件将默认继承该仓库地址,请确保该仓库存在相关组件镜像;组件也会提供独立的镜像仓库参数,设置后组件镜像从该地址拉取。
    离线(内网环境)

    镜像仓库为空


    1. 配置包来源:从本地 kubeclipper 集群server节点下载,您可以使用 kcctl resource list 命令查看本地可用配置包,或使用 kcctl resource push 命令上传所需配置包。


    2. 镜像拉取方式:从本地 kubeclipper 集群server节点下载,下载后由CRI进行镜像导入。您可以使用 kcctl resource list 命令查看本地可用镜像包,或使用 kcctl resource push 命令上传所需镜像包。
    离线(内网环境)

    镜像仓库指定





    1. 配置包来源:从本地下载,您可以使用 kcctl resource list 命令查看本地可用配置包,或使用 kcctl resource push 命令上传所需配置包。


    2. 镜像拉取方式:从填写的镜像仓库拉取,组件将默认继承该仓库地址,请确保该仓库存在相关组件镜像;组件也会提供独立的镜像仓库参数,设置后组件镜像从该地址拉取。kubeclipper 提供 Docker Registry 方案,并使用 kcctl registry 命令行进行管理,您也可以使用其他自有镜像仓库。

创建单节点实验集群

  1. 点击“集群管理”>“集群”,进入集群列表页面,点击左上角“创建集群”按钮。

  2. 进入创建集群向导页面的“节点配置”页面。填写“集群名称”,如“test”,不需选择“集群模版”。选择一个可用节点,添加为控制节点,并在污点管理列表中,将 master 节点的污点移除。点击“下一步”按钮。

  1. 进入创建集群向导页面的“集群配置”页面。选择“离线安装”,“镜像仓库”不需填写,其他配置都可使用默认配置,点击“快速创建”按钮,跳转配置确认页面,点击“确认”按钮。

  2. 单节点的实验集群创建完成,您可以在集群详情页查看集群详情,也可以点击“查看日志”按钮,查看集群创建过程中的实时日志。

使用镜像仓库创建集群

如果创建的集群中包含较大的镜像,推荐您将所有镜像上传到特定的镜像仓库,创建集群会更快速更顺畅。

  1. 添加镜像仓库。点击“集群管理”>“镜像仓库”,进入镜像仓库列表页面,点击左上角“添加”按钮。在添加镜像仓库的弹窗中输入存放有镜像的仓库 IP 地址,点击“确定”按钮。

  2. 创建集群。点击“集群管理”>“集群”,进入集群列表页面,点击左上角“创建集群”按钮。按需配置集群节点,在“集群配置”页面的“镜像仓库”中,选择第一步添加的镜像仓库,根据需要完成集群其他配置后创建集群。

使用集群模版创建集群

您可以使用集群模版,简化集群创建流程。

  1. 添加模版。保存模版有两种方式,您可以在“集群管理”>“模版管理”页面,添加集群模版,以备创建集群时使用。也可以点击集群操作中的“更多”>“保存为模版”,将已存在的集群配置保存为模版,以便创建出和该集群同等配置的 K8S 集群。

  2. 创建集群。点击“集群管理”>“集群”,进入集群列表页面,点击左上角“创建集群”按钮,进入创建集群页面,填写“集群名称”,如“demo”,选择第一步中保存的集群模版,添加所需节点,点击右下角“快速创建”按钮,跳转至“配置确认”页面,核对模版信息无误后,点击“确认”按钮,创建集群。

集群配置指南

节点配置步骤

在节点配置页面,您可以对节点进行以下配置:

  • 区域:集群所属区域,添加节点时可为节点指定物理的或逻辑的区域,使用该区域下节点创建的 K8S 集群也属于该区域,不支持使用跨区域的多个节点创建集群。

  • 控制节点:为集群指定奇数个的控制节点,生产环境一般使用3个控制节点以实现高可用。

  • 工作节点:根据业务规模,为新集群添加工作节点。

  • 污点管理:您可以为已添加的节点配置污点,kubeclipper 会自动为控制节点添加不允许调度(noschedule)的污点,您也可以根据需要进行更改。

  • 节点标签:您可以根据需要为已添加的集群节点配置标签。

您可以按业务需要配置所需节点。如果需要创建非高可用的实验集群,也可以仅添加一个控制节点,并将控制节点自动添加的污点移除,详细操作参见“创建单节点实验集群”。

集群配置步骤

在集群配置页面,您可以对集群进行以下配置:

  • 安装方式和镜像仓库:
页面配置配置包/镜像来源
在线(公网环境)

镜像仓库为空
1. 配置包来源:从 kubeclipper.io 下载。


2. 镜像拉取方式:镜像默认从官方镜像仓库拉取,如k8s镜像从 k8s.gcr.io 拉取、calico 从 docker.io 拉取。
在线(公网环境)

镜像仓库指定
1. 配置包来源:从 kubeclipper.io 下载。


2. 镜像拉取方式:从填写的镜像仓库拉取,组件将默认继承该仓库地址,请确保该仓库存在相关组件镜像;组件也会提供独立的镜像仓库参数,设置后组件镜像从该地址拉取。
离线(内网环境)

镜像仓库为空
1. 配置包来源:从本地 kubeclipper 集群server节点下载,您可以使用 kcctl resource list 命令查看本地可用配置包,或使用 kcctl resource push 命令上传所需配置包。


2. 镜像拉取方式:从本地 kubeclipper 集群server节点下载,下载后由CRI进行镜像导入。您可以使用 kcctl resource list 命令查看本地可用镜像包,或使用 kcctl resource push 命令上传所需镜像包。
离线(内网环境)

镜像仓库指定





1. 配置包来源:从本地下载,您可以使用 kcctl resource list 命令查看本地可用配置包,或使用 kcctl resource push 命令上传所需配置包。


2. 镜像拉取方式:从填写的镜像仓库拉取,组件将默认继承该仓库地址,请确保该仓库存在相关组件镜像;组件也会提供独立的镜像仓库参数,设置后组件镜像从该地址拉取。kubeclipper 提供 Docker Registry 方案,并使用 kcctl registry 命令行进行管理,您也可以使用其他自有镜像仓库。
  • K8S版本:指定集群K8S版本。当您选择离线安装的时候,可以从当前环境中配置包的K8S版本中选择;当您选择在线安装的时候,可以从 kubeclipper 官方推荐的版本中选择。

  • ETCD数据目录:可指定ETCD 数据目录,默认为/var/lib/etcd。

  • CertSANs:k8s 集群 ca 证书签名的 ip 或者域名,可填写多个。

  • 容器运行时:根据指定 K8S 版本,K8S 版本在 v1.20.0 之前,容器运行时默认 docker,之后默认 containerd;v1.24.0 之后不支持 docker。

  • 容器运行时版本:指定containerd / docker版本。与 K8S 相同,当您选择离线安装的时候,可以从当前环境中配置包的版本中选择;当您选择在线安装的时候,可以从 kubeclipper 官方推荐的版本中选择。

  • Containerd 数据目录:可填写config.toml 配置中的 root dir,默认为/var/lib/containerd。

  • Docker数据目录:可填写daemon.json 配置中的 root dir,默认为/var/lib/docker。

  • Containerd 镜像仓库:存放containerd镜像的仓库地址,config.toml 配置中的 registry.mirrors,可填写多个。

  • Docker镜像仓库:存放docker镜像的仓库地址,daemon.json 配置中的 insecure registry,可填写多个。

  • DNS 域名:k8s 集群的域名,默认为cluster.local。

  • Worker 负载 IP:用于 worker 节点到多master的负载均衡,单一master不需要设置。

  • 外部访问IP:可以填写一个浮动 IP 给用户访问,可为空。

CNI配置

当前版本仅支持Calico作为集群CNI。

Calico将用户设置的pod cidr分为若干个block(网段),根据业务需求动态的分配给需要的节点,并在节点中通过 bgp peer维护集群节点的路由表。

例如:容器的地址池:172.25.0.0/16,动态分配的网段池: 172.25.0.0 - 172.25.255.192 (172.25.0.0/26 即 10 个比特位),动态分配的网段数: 1023,每个网段的pod数量为: 61 (193-254),总pod数量为1023 * 61 = 62403,相对最大节点数(按照200业务pod为基准值):312。

目前不建议大于50个节点的集群,大于50个节点的集群建议手动配置route reflection,用来优化集群中的节点的路由表维护的稳定性。

使用Calico作为集群CNI,您需要进行以下配置:

  • Calico 模式:支持5种网络模式:

    • Overlay-IPIP-All: 使用 IP-in-IP 技术打通不同节点的 pod 的网络,通常这样的方式使用在底层平台是 iaas 的环境之中,当然如果你底层网路环境直接是物理设备的也完全可以使用只不过效率和灵活度都会大打折扣,需要注意的是你需要确认底层网络环境(underlay)是支持 IPIP 协议的.(使用overlay的网络方式对网络性能造成一定的影响)。

    • Overlay-Vxlan-All: 使用 IP-in-IP 技术打通不同节点的 pod 的网络,通常这样的方式使用在底层平台是 iaas 的环境之中,当然如果你底层网路环境直接是物理设备的也完全可以使用只不过效率和灵活度都会大打折扣,他理论上可以在任何的网络环境上运行,通常在底层环境不支持 IPIP 协议的时候我们会使用他.(使用overlay的网络方式对网络性能造成一定的影响)。

    • BGP: 使用 IP-in-IP 技术打通不同节点的 pod 的网络,通常这样的方式使用在裸机的环境上,当然底 Iaas 平台支持 BGP 的话也是可以使用的,这种模式下 pod 的 ip 通信是通过 集群中的各个节点中互相交换路由表来完成 pod 之间的通信的,如果你需要手动打通多个集群之间的 pod 网络需要注意你分配的地址断不应该有冲突。

    • Overaly-IPIP-Cross-Subnet: 使用 IP-in-IP 技术打通不同节点的 pod 的网络,通常这样的方式使用在底层平台是 iaas 的环境之中,需要注意的是你需要确认底层网络环境(underlay)是支持 IPIP 协议的.和 Overlay-IPIP-All 的不同之处在于,如果 2 个不同节点但在同一个网段中的上 pod 互相通信时是通过路由表,这样可以提高在不同节点但在同一个网段中的上 pod 互相通信时的效率。

    • Overaly-Vxlan-Cross-Subnet: 和 Overaly-IPIP-Cross-Subnet 逻辑相似不再做重复的解释。

  • IP版本:可指定IP版本为IPV4或IPV4 IPV6双栈。

  • 服务子网:填写service子网CIDR,v4默认为:10.96.0.0/16,v6默认为fd03::/112,注意Service网络不得与任何主机网络重叠。

  • Pod CIDR:填写pod子网CIDR,v4默认:172.25.0.0/24,v6默认为fd05::/120,注意Pod 网络不得与任何主机网络重叠。

  • pod网路的底层:

    • first-found(默认):程序会根据ipfamily(v4或v6)遍历所有的有效的ip地址(local,loop back,docker bridge等会被自动排除)通常如果是多网卡时会排除默认网关以外的网卡的ip作为节点之间的路由地址。

    • can-reach:通过检查域名或者ip的可达性来设置节点之间的路由地址。

    • interface:根据正则表达式获取所有满足的网卡设备名称并返回第一个满足表达式网卡的地址作为节点之间的路由地址。

  • MTU:为Calico环境配置最大传输单元(MTU),建议不大于1440,默认为1440,详情见 Configure MTU to maximize network performance

存储配置

Kubeclipper当前版本内置了 NFS、Ceph 两种外接存储类型。

  • 对接NFS存储

对接NFS类型的外接存储,您需要设置以下内容:

字段作用说明填写说明/可选项
服务地址ServerAddr,NFS的服务地址必填
共享路径SharedPath,NFS的服务挂载路径必填
存储类StorageClassName,存储类的名称默认为 nfs-sc,可自定义名称,不可与集群其他存储类重复
回收策略ReclaimPolicy,VPC回收策略删除 Delete / 保留 Retain
删除后归档ArchiveOnDelete,是否在删除后归档PVC是 / 否
挂载选项MountOptions,NFS 的 options 参数,如nfsvers=4.1选填,可填写多个
副本数Replicas,NFS provisioner副本数默认为1

NFS类型的存储默认可对接多个,点击下方“继续添加”按钮,可以添加多个NFS存储,注意存储类名称不可重复。

设置完外接存储后,下方卡片会显示您已经开启的存储,您可以选择一个存储类作为默认存储,对于未指定特定StorageClass 的 PVC ,会直接使用默认的存储类。

集群操作日志查看

在集群详情页面,点击“操作日志”标签页,可以查看集群操作日志列表。点击操作日志右侧“查看日志”按钮,可以在弹窗中查看全部步骤和节点的详细日志。点击左侧步骤名称,可查看执行步骤详细的日志输出。

在集群操作执行过程中,点击查看日志,您可以实时查看到日志更新来跟踪操作执行情况。对于执行失败的任务,您也可以通过查看日志,找到红色圆点标注的执行步骤和节点,快速定位错误,排查操作失败原因。

访问集群 kubectl

您可以访问运行中集群的 kubectl,点击集群操作中的“更多”>“连接终端”,就可以在集群 kuebectl 弹窗中执行 kubectl 命令行操作。

集群插件管理

除了在创建集群时安装插件,您也可以为运行中的集群安装存储和其他自定义插件。以安装存储插件为例,点击集群操作中的“更多”>“添加存储项”按钮,进入添加存储项页面,可以为集群安装 NFS 或Ceph 类型的存储插件,安装配置与创建集群中的配置相同。

对于已安装的插件,您可以在集群详情页查看插件信息。可以点击插件卡片右上角的“保存为模版”按钮,将插件信息保存为模版,以便为其他集群使用。也可以点击插件卡片右上角的“移除”按钮,卸载集群插件。

集群节点管理

在集群详情页的“节点”列表页面,您可以查看当前集群中的节点列表,节点的规格、状态和角色信息。

添加集群节点

当集群负载较高时,您可以通过为集群添加节点来达到主动扩容的目的,添加新的“节点”不会影响现有的业务的运行。

在集群详情页的节点列表标签页下,点击左侧的“添加节点”按钮,在弹窗中选择可用节点,设置节点标签,点击“确认”按钮。当前版本仅支持添加工作节点。

移除集群节点

在集群详情页的节点列表标签页下,您可以点击节点右侧的 “移除”按钮移除节点。当前版本仅支持移除工作节点。

注意:移除集群节点,您需要注意生产中的安全问题,避免应用发生中断。

集群版本升级

当集群版本不满足需要,您可以为集群升级 K8S 版本。与创建集群一样,您需要准备好集群版本所需配置包和目标版本的 K8S 镜像并上传至指定位置,详情参见“创建集群准备工作”。

点击集群操作的“更多”>“集群升级”按钮,在集群升级弹窗中选择安装方式和镜像仓库,选择升级的目标版本,升级的安装方式和 K8S 版本的配置与创建集群相同,详情参见“集群配置指南”。

集群升级可以跨小版本,但不支持略过次版本的升级,如您可以从v1.20.2升级到v1.20.13,或由v1.20.x升级到v1.21.x,但不支持从v1.20.x升级到v1.22.x。对于1.23.x版本,暂不支持升级到1.24.x版本。

升级集群操作可能需要较长时间,您可以在集群详情页面查看操作日志,跟踪集群升级状态。

集群备份与恢复

KubeClipper 对 k8s 集群的备份主要为备份 ETCD 数据库数据,以及 k8s 的资源对象备份,如 namespace,deployment、configMap。对资源自身产生的文件和数据不做备份,例如对集群中运行的 mysql pod,该 mysql pod 产生的数据和文件,不会为之备份,同理,文件类的 pv 对象下的文件,也不做备份,仅仅备份 pv 这个对象。KubeClipper 提供的备份功能是热备份,备份期间不影响集群的使用。KubeClipper 虽然不反对在集群 “繁忙期” 备份,但也强烈不赞成在集群 “繁忙期” 备份。

创建备份点

执行备份之前,您需要先为集群设置备份点,即设置备份文件的存储位置。备份点的存储类型可以是FS 存储或 S3 存储,下面以节点本地存储、NFS 存储和 MINIO 存储为例:

节点本地存储**(仅适用单节点实验集群):**

  1. 创建存储目录。连接集群 master 节点终端(可参见连接节点终端),使用 mkdir 命令,在 master 节点中创建“/root/backup”目录。

  2. 创建备份点。点击“集群管理”>“备份点”,进入备份点列表页,点击右上角“创建”按钮,在创建备份点弹窗中,输入“备份点名称”,如“local”,选择“存储类型”为“FS”,填写“备份路径”,如“/root/backup”。

  3. 设置集群备份点。创建集群时,在“集群配置”页面选择“备份点”为“local”,或者编辑已有集群,在编辑集群弹窗中的“备份点”中选择“local”。

注意:使用本地节点存储备份文件,不需要引入外部存储,缺点是如果本地节点遭到破坏,备份文件也会丢失,所以强烈不赞成在生产环境中使用。

NFS:

  1. 准备 NFS 存储。准备一台 NFS 服务,并在 NFS 服务器上创建一个用于存放备份文件的目录,如 “/data/kubeclipper/cluster-backups”。

  2. 挂载存储目录。连接集群 master 节点终端(可参见连接节点终端),使用 mkdir 命令,在每个 master 节点中创建“/data/kubeclipper/cluster-backups”目录,并 mount 到 NFS 服务器的 /data/kubeclipper/cluster-backups 目录即可,命令示例:mount -t nfs { NFS_IP }:/data/kubeclipper/cluster-backups /opt/kubeclipper/cluster-backups -o proto=tcp -o nolock。

  3. 创建备份点。点击“集群管理”>“备份点”,进入备份点列表页,点击右上角“创建”按钮,在创建备份点弹窗中,输入“备份点名称”,如“nfs”,选择“存储类型”为“FS”,填写“备份路径”为“/opt/kubeclipper/cluster-backups”。

  4. 设置集群备份点。创建集群时,在“集群配置”页面选择“备份点”为“nfs”,或者编辑已有集群,在编辑集群弹窗中的“备份点”中选择“nfs”。

MINIO:

  1. 准备 MINIO 存储。搭建 MINIO 服务,部署过程参考官网 https://docs.min.io/docs/minio-quickstart-guide.html,也可以使用已有 MINIO 服务。

  2. 创建备份点。点击“集群管理”>“备份点”,进入备份点列表页,点击右上角“创建”按钮,在创建备份点弹窗中,输入“备份点名称”,如“minio”,选择“存储类型”为“S3”,填写“bucket 名称”,如 “kubeclipper-backups”,该 bucket 将由 kubeclipper 自动创建,“Endpoint”中填写第一步 MINIO 存储服务的 ip 和端口号,填写服务用户名和密码,点击“确定”按钮。

  3. 设置集群备份点。创建集群时,在“集群配置”页面选择“备份点”为“minio”,或者编辑已有集群,在编辑集群弹窗中的“备份点”中选择“minio”。

您可以在“集群管理”的“备份点”页面查看所有备份点列表和详细信息,并执行以下操作:

  • 编辑:编辑备份点描述,和 S3 类型备份点的用户名/密码。

  • 删除:删除备份点,备份点下存在备份文件的,不允许删除。

集群备份

您可以点击集群操作中的“更多”>“集群备份”按钮,备份集群 ETCD 数据。

您可以在集群详情页面的备份标签页下,查看当前集群的所有备份文件,还可以对备份执行以下操作:

  • 编辑:编辑备份描述。

  • 恢复:执行集群恢复操作,将集群恢复至指定备份状态。

  • 删除:删除指定备份文件。

定时备份

您也可以为集群创建定时备份,点击集群操作中的“更多”>“定时备份”按钮,在定时备份弹窗中,输入定时备份名称、执行类型(重复执行/仅执行一次)和执行时间,并为重复执行的定时备份设置有效备份个数,点击“确认”按钮。

kubeClipper 会在您设置的执行时间为集群执行备份任务,备份文件会自动命名为“集群名称-定时备份名称-随机码”,对于重复执行的定时备份,kubeClipper 会在该定时任务下的备份文件超过有效备份个数时,自动删除超出个数的较晚的备份文件。

定时备份添加完成后,可以在集群详情页的“定时备份”标签页查看定时备份信息,也可以在“备份”标签页查看定时备份产生的备份文件。

对于定时备份任务,您还可以执行以下操作:

  • 编辑:编辑定时备份任务执行时间,和重复执行的定时备份的有效备份个数。

  • 启用/禁用:禁用的定时备份任务将暂时停止执行。

  • 删除:删除定时备份任务。

集群备份恢复

如果您在集群正常运行期间执行恢复操作,则 KubeClipper 将对该集群进行覆盖式恢复,就是备份文件里面的 etcd 数据,覆盖现有的数据。

您可以在集群详情页的备份标签页下,点击备份右侧的 “恢复”按钮;或点击集群操作中的“更多”>“恢复集群”按钮,在恢复集群弹窗中选择需要恢复的备份,可以将当前集群恢复至指定备份状态。

注意:集群升级后,将无法再恢复到升级前版本的备份。

4.2 - 节点管理

KubeClipper 节点管理功能使用指南

在“节点信息”页面,您可以查看平台中管理的全部节点列表,节点规格、状态等信息。点击节点名称进入节点详情页面,您可以查看详细的节点基本信息和系统信息。

KubeClipper 中的节点状态表示 kc-gent 对节点的管理状态。正常情况下,节点状态显示为“就绪”,当节点失联4分钟(误差时间10s内)后,状态会更新为“未知”,未知状态的节点无法进行任何操作,也无法创建集群或为集群添加/移除节点。

添加节点

在部署 KubeClipper 时,您就可以添加初始的 server 节点和 agent 节点,其中,server节点用于部署 KubeClipper 自身服务,agent 节点可用于部署 K8S 集群。在用于实验或开发的 KubeClipper 环境,您可以将 server 节点同时添加为 agent 节点。但如果用于生产环境,建议不要将 server 节点复用为 agent 节点。

您也可以使用 kcctl join 命令为 KubeClipper 添加 agent 节点。同时,您可以为每个 agent 节点标记一个区域,区域可以是物理的或逻辑的位置,您可以使用同一区域的节点创建 K8S 集群,但不可以使用跨区域的节点创建集群。未标记区域的节点默认属于 default 区域。详情参见“Kcctl 操作指南“。

命令行示例:

kcctl join --agent beijing:1.2.3.4 --agent shanghai:2.3.4.5

移除节点

当您不再需要某些节点,可以使用 kcctl drain 命令将节点从平台中移除。详情参见“Kcctl 操作指南“。

命令行示例:

kcctl drain --agent 192.168.10.19

连接终端

在节点列表页面,您可以点击目标节点右侧的“连接终端”按钮,在连接终端的弹窗中输入节点端口和用户名密码信息后,访问节点SSH控制台并执行命令。

4.3 - 访问控制

KubeClipper 访问控制功能使用指南

创建用户

安装 KubeClipper 之后,您需要创建所需角色的用户。一开始,系统默认只有一个用户 admin,具有平台管理员角色。

点击“访问控制”>“用户”,进入用户管理页面,点击左上角“创建用户”按钮,在弹窗中填写用户名、密码、手机号码、邮箱等信息,并指定用户角色,点击“确认”按钮。系统内置四个角色如下:

  • 平台管理员:拥有平台配置、集群管理、用户管理、DNS解析、审计等全部平台查看和操作权限。

  • 集群管理员:拥有所有集群管理权限。

  • 用户管理员:拥有所有用户管理权限。

  • 平台只读用户:拥有全部平台查看权限。

用户创建完成后,您可以在用户详情页面查看用户详情信息和登录日志,并执行以下操作:

  • 编辑:编辑用户别名、角色、手机号、邮箱信息。

  • 编辑密码:编辑用户登录密码。

  • 删除:删除用户。

创建自定义角色

除了系统内置角色,您也可以创建自定义角色,已满足业务需要。

点击“访问控制”>“角色”,进入角色管理页面,您可以点击左上角“创建角色”按钮,创建自定义角色。

在创建角色页面,您需要填写角色名称和描述,并勾选自定义角色所需权限,一些权限依赖于其他权限,在选择这些权限时,将自动选中依赖的权限。

创建自定义角色完成后,您可以在角色详情页面查看角色基本信息、角色权限列表、授权用户列表,并对自定义角色执行以下操作:

  • 编辑:编辑自定义角色别名。

  • 编辑权限:编辑自定义角色下的权限。

  • 删除:删除自定义角色,需确保没有用户使用待删除角色。

接入外部用户

KubeClipper 可以通过 OIDC 协议使用外部用户登录。

首先,平台管理员需要登录平台 server 节点,在 kubeclipepr-server.yaml 文件中的 authentication 下插入以下信息:

oauthOptions:    identityProviders:    - name: keycloak      type: OIDC      mappingMethod: auto      provider:        clientID: kc        clientSecret: EErn729BB1bKawdRtnZgrqj9Bx0]mzUs        issuer: http://172.20.163.233:7777/auth/realms/kubeclipper        scopes:        - openid        - email        redirectURL: http://{kc-console-address}/oatuh2/redirect/{IDP-Name}

其中,“provider”下需要您填写自己的 OAuth2 服务的clientIDclientSecretissuer信息,以 keycloack 为例,如下图所示。

redirectURL示例:http://172.0.0.90/oauth2/redirect/keycloack

OAuth2 用户可以通过以下步骤访问和使用 KubeClipper 平台:

  1. 点击登录页的“OAuth2 登录”按钮,进入 OAuth2 登录页面,输入用户名密码登录,进入 KubeClipper 平台,首次登录,您会因未被授予权限而无法访问平台。

  2. 平台管理员或其他拥有用户管理权限的用户登录 KubeClipper,在用户管理页面,找到目标 OAuth2 用户,通过编辑用户指定用户角色。

  3. OAuth2 用户重复第一步,登录 KubeClipper,就可以正常访问平台并执行角色权限内操作。

5 - 贡献指南

How to contribute to the kubeclipper

请查看 KubeClipper Community