快捷搜索:  汽车  科技

kubernetes使用(从这里开启您的)

kubernetes使用(从这里开启您的)KubeOperator 使用 Terraform 在 IaaS 平台上自动创建主机(用户也可以自行准备主机,比如物理机或者虚机),通过 Ansible 完成自动化部署和变更操作,支持 Kubernetes 集群 从 Day 0 规划,到 Day 1 部署,到 Day 2 运营的全生命周期管理。KubeOperator 提供可视化的 Web UI,支持离线环境,支持物理机、VMware、OpenStack 和 FusionCompute 等 IaaS 平台,支持 x86 和 ARM64 架构,支持 GPU,内置应用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。kubeadm的安装过程比较复杂,还需要单独安装网络,对op能力要求挺高的。KubeOperator就是单独做一台机器,帮你把整个集群自动化地安装起来。实际安装过程,还是kubeadm来做的KubeOperator

模板作者:xianyun

能今天做好的事就不要等到明天。以梦为马,学习趁年华。

一、安装背景

结合我本人在公司安装部署k8s集群的方法,总结了一份文档,在网上找了很多安装k8s集群的方法,最后决定采用通过KubeOperator工具进行安装,KubeOperator的优势

与 OpenShift 等重量级 PaaS 平台相比,KubeOperator 只专注于解决一个问题,就是帮助企业规划(Day 0)、部署(Day 1)、运营(Day 2)生产级别的 K8s 集群,并且做到极致。

kubernetes使用(从这里开启您的)(1)

kubeadm的安装过程比较复杂,还需要单独安装网络,对op能力要求挺高的。

KubeOperator就是单独做一台机器,帮你把整个集群自动化地安装起来。实际安装过程,还是kubeadm来做的

二、总体介绍1. KubeOperator介绍

KubeOperator 是一个 来源 的轻量级 Kubernetes 发行版,专注于帮助企业规划、部署和运营生产级别的 kubernetes 集群。

KubeOperator 提供可视化的 Web UI,支持离线环境,支持物理机、VMware、OpenStack 和 FusionCompute 等 IaaS 平台,支持 x86 和 ARM64 架构,支持 GPU,内置应用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。

KubeOperator 使用 Terraform 在 IaaS 平台上自动创建主机(用户也可以自行准备主机,比如物理机或者虚机),通过 Ansible 完成自动化部署和变更操作,支持 Kubernetes 集群 从 Day 0 规划,到 Day 1 部署,到 Day 2 运营的全生命周期管理。

2. 技术优势
  • 简单易用: 提供可视化的 Web UI,极大降低 Kubernetes 部署和管理门槛,内置 Webkubectl
  • 按需创建: 调用云平台 API,一键快速创建和部署 Kubernetes 集群
  • 按需伸缩: 快速伸缩 Kubernetes 集群,优化资源使用效率
  • 按需修补: 快速升级和修补 Kubernetes 集群,并与社区最新版本同步,保证安全性
  • 离线部署: 支持完全离线下的 Kubernetes 集群部署
  • 自我修复: 通过重建故障节点确保集群可用性
  • 全栈监控: 提供从Pod、Node到集群的事件、监控、告警、和日志方案
  • Multi-AZ 支持: 将 Master 节点分布在不同的故障域上确保集群高可用
  • 应用商店: 内置 KubeApps 应用商店
  • GPU 支持: 支持 GPU 节点,助力运行深度学习等应用
3. 功能列表

Day 0 规划

集群模式

1 个 Master 节点 n 个 Worker 节点模式:适合开发测试用途

3 个 Master 节点 n 个 Worker 节点模式:适合生产用途

计算方案

独立主机:支持自行准备的虚机、公有云主机和物理机

vSphere 平台:支持自动创建主机(使用 Terraform)

Openstack 平台:支持自动创建主机 (使用 Terraform)

FusionCompute 平台:支持自动创建主机 (使用 Terraform)

存储方案

独立主机:支持 NFS / Ceph RBD / Rook Ceph / Local Volume

vSphere 平台:支持 vSphere Datastore (vSAN 及 vSphere 兼容的集中存储)

Openstack 平台:支持 Openstack Cinder (Ceph 及 Cinder 兼容的集中存储)

FusionCompute 平台:支持 OceanStor

网络方案

支持 CoreDNS

支持 Flannel / Calico 网络插件

支持 ingress-nginx / traefik

支持通过 F5 Big IP 对外暴露服务(X-PACK)

GPU 方案

支持 NVIDIA GPU

操作系统

支持 RHEL / CentOS / EulerOS 操作系统

容器运行时

支持 Docker / Containerd

Day 1 部署

部署

支持在线和离线安装模式

支持 Kubeadm 部署

支持 x86_64 和 arm64 CPU 架构

支持可视化方式展示部署过程

支持一键自动化部署(使用 Ansible)

支持已有集群导入

Day 2 运营

管理

支持以项目为核心的分级授权管理

支持系统管理员、项目管理员和集群管理员三种角色

支持多集群配置管理(X-PACK)

支持对接 LDAP/AD(X-PACK)

支持自定义 Logo 和 配色(X-PACK)

对外开放 REST API

支持国际化 i18n

提供 Web Kubectl 界面

内置 Helm

可观察性

内置 Prometheus,支持对集群、节点、Pod、Container的全方位监控和告警

内置 EFK、Loki 日志方案

内置 Grafana 作为监控和日志展示

支持消息中心,通过钉钉、微信通知各种集群异常事件(X-PACK)

升级

支持集群升级

伸缩

支持增加或者减少 Worker 节点

备份

支持 etcd 定期备份和立即备份

恢复

支持 etcd 备份策略文件恢复和本地文件恢复

安全合规

支持集群健康评分(X-PACK)

支持 CIS 安全扫描

应用商店

提供 GitLab、Jenkins、Harbor、Argo CD、Sonarqube 等 CI/CD 工具

提供 Kuboard、Weave Scope、Redmine 等管理工具

提供深度学习AI 应用,比如 TensorFlow

4. 支持组件

kubernetes v1.18.14etcd v3.4.14docker v19.03.9containerd v1.4.3calico v3.16.5flanneld v0.13.0coredns v1.8.0helm-v2 v2.17.0helm-v3 v3.4.1traefik v2.2.1ingress-nginx v0.33.0metrics-server v0.3.6istio 1.8.0dashboard v2.0.3kubeapps v1.10.2prometheus v2.18.1grafana v7.3.3loki v2.0.0logging v7.6.2chartmuseum v0.12.0docker-registry v2.7.1argo-cd v1.7.4gitlab-ce v9.4.1harbor v1.10.2jenkins v2.222.1kuboard v2.0.5.1redmine v4.1.1sonarqube v7.9.2tensorflow-serving v1.14.0tensorflow-notebook v1.6.0weave-scope v1.12.0

三、主要概念部署模式
  • 手动模式: 用户需要自己准备物理机或虚拟机 存储可选择 NFS 持久化存储,外部 ceph 存储等
  • 自动模式: 用户只需要绑定云平台(比如 VMware)账号信息,KubeOperator 会根据预先定义的部署计划来自动创建主机实现一键自动化部署
部署计划

自动部署模式下,部署计划定 义了 Kubernetes 集群的部署细节,包括其部署模型、集群所在的区域、可用区、节点大小类型等

区域和可用区

kubernetes使用(从这里开启您的)(2)

区域(Region)和可用区(AZ)这两个术语来自公有云。每个区域完全独立。每个可用区完全隔离,但同一个区域内的可用区之间使用低时延链路相连。区域和可用区之间的关系如下图所示

对于公有云厂商提供的托管 Kubernetes 服务,master 节点由公有云厂商托管并维护,其 3 个master 节点会分布在同个区域下面的 3 个不同可用区上面,实现真正的高可用

KubeOperator 借鉴公有云厂商的思路和概念,并应用到 VMware、Openstack 和 FusionCompute 等私有云平台上面。例如,在 VMware 云平台下,区域对应为 Datacenter,可用区对应于 cluster,或者 cluster 下面的 resource pool

注意事项

  • 如果用户只有一个 vSphere 集群,那么可以在集群下面建立三个 resource pool,每个resource pool 对应于一个可用区
  • 如果用户有三个 vSphere 集群,那么每个集群对应于一个可用区
  • vSAN 集群不能被多个 vSphere 集群共享,所以 3 个 vSphere 集群,持久化存储仅支持集中存储。 具体请参考此文档
权限模型

支持通过在项目中设置用户权限等级来管理集群,分为系统管理员、项目管理员、集群管理员

系统管理员

默认的 admin 账号可以创建系统管理员

  • 管理集群,安装、卸载、升级、扩容、缩容、备份、恢复等等所有集群相关操作
  • 管理用户,添加系统管理员和普通用户
  • 管理项目,创建新项目,给项目创建集群、指定项目管理员、授权资源等
  • 管理资源,添加集群所需主机、部署计划等
  • 系统设置,设置添加凭据、添加备份账号等
项目管理员
  • 管理集群,安装、卸载、升级、扩容、缩容、备份、恢复等等所有集群相关操作
  • 管理成员,可以指定普通用户(非系统管理员)给某个项目为项目管理员和集群管理员
  • 授权资源,创建集群所需资源,包括主机,部署计划和备份账号
集群管理员¶
  • 管理集群,安装、卸载、升级、扩容、缩容、备份、恢复等等所有集群相关操作
四、系统架构系统架构

kubernetes使用(从这里开启您的)(3)

组件说明
  • kubeoperator_server: 提供平台业务管理相关功能的后台服务;
  • kubeoperator_ui: 提供平台业务管理相关功能的前台服务;
  • kubeoperator_kobe: 提供执行 Ansible 任务创建 Kubernetes 集群的功能;
  • kubeoperator_kotf: 提供执行 Terraform 任务创建虚拟机的功能;
  • kubeoperator_webkubectl: 提供在 Web 浏览器中运行 kubectl 命令的功能;
  • kubeoperator_nginx: 平台统一入口,并运行控制台的 Web 界面服务;
  • kubeoperator_mysql: 数据库管理组件;
  • kubeoperator_nexus: 仓库组件,提供 Docker、Helm、Raw、Yum等资源仓库功能;
  • kubeoperator_grafana: 监控组件,提供平台监控等相关功能;

各个组件间的关系可参考下图

kubernetes使用(从这里开启您的)(4)

五、安装部署硬件要求

最小化配置

角色

CPU核数

内存

系统盘

数量

部署机

4

8G

100G

1

Master

4

8G

100G

1

Worker

4

8G

100G

3

推荐配置

角色

CPU核数

内存

系统盘

数量

部署机

8

16G

100G SSD

1

Master

8

16G

100G SSD

3

Worker

8

16G

系统盘: 100G
数据盘: 300G(/var/lib/docker)

>3

软件要求

kubeoperator 部署机

需求项

具体要求

参考(以CentOS7.6为例)

操作系统

支持 Docker 的 Linux OS

cat /etc/redhat-release

CPU 架构

支持 x86_64 和 aarch64

uname -m

kernel 版本

>=Linux 3.10.0-957.el7.x86_64

uname -sr

swap

关闭

swapoff -a
sed -i '/ swap / s/^.*$/#\1/g' /etc/fstab

防火墙

关闭

systemctl stop firewalld && systemctl disable firewalld

端口

所有节点防火墙必须放通 SSH(默认22)、80、8081-8083端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

SELinux

关闭

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

kubernetes 集群节点

安装说明

离线安装

请自行下载 KubeOperator 最新版本的离线安装包,并复制到目标机器的 /tmp 目录下

cd /tmp # 解压安装包 tar zxvf KubeOperator-release-v3.x.y.tar.gz # 进入安装包目录 cd KubeOperator-release-v3.x.y # 运行安装脚本 /bin/bash install.sh # 等待安装脚本执行完成后,查看 KubeOperator 状态 koctl status

在线安装

安装完成后,检查服务状态。若有有异常,可以使用 koctl restart 命令进行重新启动

[root@kubeoperator ~]# koctl status Name Command State Ports ------------------------------------------------------------------------------------------------------------------------------------------------ kubeoperator_grafana /run.sh Up (healthy) 3000/tcp kubeoperator_kobe kobe-server Up (healthy) 8080/tcp kubeoperator_kotf kotf-server Up (healthy) 8080/tcp kubeoperator_mysql /entrypoint.sh mysqld Up (healthy) 3306/tcp 33060/tcp kubeoperator_nexus sh -c ${SONATYPE_DIR}/star ... Up 0.0.0.0:8081->8081/tcp 0.0.0.0:8082->8082/tcp 0.0.0.0:8083->8083/tcp kubeoperator_nginx /docker-entrypoint.sh ngin ... Up (healthy) 0.0.0.0:80->80/tcp kubeoperator_server ko-server Up (healthy) 8080/tcp kubeoperator_ui /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp kubeoperator_webkubectl sh /opt/webkubectl/start-w ... Up (healthy)

登录

地址: http://<ko服务器_ip>:80 用户名: admin 密码: kubeoperator@admin123

帮助

koctl --help升级说明

离线升级

# 离线升级需要提前下载离线安装包,并解压到KubeOperator部署机 # 进入升级包目录 cd KubeOperator-release-v3.x.y # 运行安装脚本 ./koctl upgrade # 查看 KubeOperator 状态 koctl status

在线升级

混合架构说明

定义:混合架构是指使用 KubeOperator 部署同时包含 x86_64 和 arm64 架构节点的 Kubernetes 集群

如下图所示,混合部署需要提供 x86_64 和 arm64 架构的 nexus 仓库,以便于集群部署时可以下载到对应架构的资源,之后在 KubeOperator 系统设置添加不同架构的仓库信息即可。

例如:

  1.可以分别部署两台不同架构的 KubeOperator(一台 arm64 一台 x86_64)

  2.使用 x86_64 架构的主机作为日常操作的主机

  3.将 arm64 的主机作为 arm 仓库使用并添加到 x86_64 的 KubeOperator 系统设置中

kubernetes使用(从这里开启您的)(5)

六、快速入门系统设置
  • 仓库协议: 支持 http 和 https,默认 http
  • 仓库 IP: 默认为部署 KubeOperator 的服务器 IP。将使用该 IP 来访问 nexus 仓库
  • CPU架构: 支持 x86_64 和 arm64 ,即两种不同 CPU 架构的仓库

注意

如果部署 Kubernetes 集群时需要K8S节点采用 x86_64 和 arm64 混合部署,则需要添加两个不同 CPU 架构的仓库

kubernetes使用(从这里开启您的)(6)

  • 手动模式创建集群,需要提前设置好主机凭据

kubernetes使用(从这里开启您的)(7)

  • NTP Server: 时间同步服务器,默认可以为空。也可以自建或使用公共 NTP Server

kubernetes使用(从这里开启您的)(8)

集群规划自动模式

KubeOperator 支持两种 Kubernetes 集群部署方式,一种是自动模式,另外一种是手动模式,我们推荐使用自动模式。在自动模式下,用户需要准备软件定义的 IaaS 云平台,比如 VMware vSphere、Openstack 和 FusionCompute 等

本章节以 VMware vSphere 平台作为示例,讲解整个 K8s 集群的规划、部署及管理过程。部署示意图如下图所示:

kubernetes使用(从这里开启您的)(9)

虚拟机配置
  • 支持添加和修改虚拟机配置(CPU、内存)
  • 默认 small、medium、large、xlarge、2xlarge 和 4xlarge 六种配置

kubernetes使用(从这里开启您的)(10)

IP 池
  • IP 池在创建可用区时使用,池中的 IP 地址将分配给虚拟机

kubernetes使用(从这里开启您的)(11)

添加 IP 池
  • 创建 IP 池要配置好子网掩码、起止 IP、网关和 DNS 等

kubernetes使用(从这里开启您的)(12)

IP 使用情况
  • 列表页点击IP 使用情况可查看IP 池中所有 IP 的状态(可达、可用和占用)
  • 在 IP 的页面,可手动添加 IP 段、同步 IP 状态

kubernetes使用(从这里开启您的)(13)

区域(Region)
  • 与公有云中的 Region 概念相似,可以简单理解为地理上的区域
  • 创建区域时,首先选择提供商,目前支持 VMware vSphere、OpenStack 和 FusionCompute

kubernetes使用(从这里开启您的)(14)

  • 配置参数时,需要提供 vSphere 环境信息,包括 vCenter IP,用户名和密码,单击【验证】可以校验 vSphere 信息是否正确

kubernetes使用(从这里开启您的)(15)

  • vCenter 用户需要的权限比较高,建议直接绑定带有管理员角色的用户

kubernetes使用(从这里开启您的)(16)

  • 选择 vCenter 的目标数据中心
可用区(Zone)
  • 与公有云中的 AZ 概念相似,可以简单理解为 Region 中具体的机房
  • 在 vSphere 体系中我们使用不同的 Cluster 或者同个 Cluster 下的不同 Resource Pool 来实现 Zone 的划分

kubernetes使用(从这里开启您的)(17)

  • 选择可用区配置参数时,需要选择计算集群,资源池,存储类型以及网络适配器等信息,这些信息依赖于 vCenter 环境配置
  • 支持默认模版和自定义模版(默认模版为CentOS 7.6)

kubernetes使用(从这里开启您的)(18)

kubernetes使用(从这里开启您的)(19)

  • 添加成功后会有一个初始化的过程(选择默认模版时,需要上传 nexus 仓库中模版文件),同步成功之后状态变为就绪
部署计划(Plan)
  • 用来描述在哪个区域下,哪些可用区中,使用什么样的机器规格,部署什么类型的集群的一个抽象概念

kubernetes使用(从这里开启您的)(20)

  • 部署计划配置包括选择可用区(可用区可以单选或多选),并设置 Master 节点,Worker 节点的规格

kubernetes使用(从这里开启您的)(21)

  • 多主多节点集群可以选择多个可用区的部署计划
手动模式

KubeOperator 支持两种 Kubernetes 集群部署方式,一种是手动模式,另外一种是自动模式。手动模式下,用户需要自行准备主机。

本章节以手动模式部署一个开发测试用集群为例,需要至少准备三台服务器,每台服务器的用途和需求是:

角色

数量

操作系统

最低配置

推荐配置

部署机

1

CentOS 7.6

4C 8G

4C 16G

Master

1

CentOS 7.6

2C 4G

4C 8G

Worker

1

CentOS 7.6

2C 4G

4C 8G

添加主机
  • 主机列表可以看到已添加主机的详细信息,包括 IP、CPU、内存、操作系统等。

kubernetes使用(从这里开启您的)(22)

授权
  • 系统管理员或项目管理员可将主机授权给目标集群所在项目

kubernetes使用(从这里开启您的)(23)

集群部署集群信息
  • 供应商: 支持裸金属(手动模式)和部署计划(自动模式)
  • 版本: 支持版本管理中最新的两个 Kubernetes 版本
  • 架构: 支持 AMD64 和 ARM64
  • Yum 仓库: 支持替换、共存和不操作三种类型

Yum 仓库

  • 替换: 会对 K8S 节点服务器原始 yum repo 文件进行备份,之后生成并仅使用 KubeOperator 的 yum repo
  • 共存: 将保持 K8S 节点服务器原始 yum repo 文件不变,同时生成并使用 kubeoperator 的 yum repo
  • 不操作: 将保持使用 K8S 节点服务器原始 yum repo 文件,不对 K8S 节点服务器的 yum repo 做任何操作

kubernetes使用(从这里开启您的)(24)

集群设置
  • 最大 POD 数量: 默认 110
  • Pod 子网: 默认 10.244.0.0/18
  • Service 子网: 默认 10.244.64.0/18
  • kube-proxy 模式: 支持 iptables 和 ipvs
  • kubernetes 审计: 支持开启日志审计功能

kubernetes使用(从这里开启您的)(25)

运行时设置
  • 容器运行时: 支持 Docker 和 Containerd(注意: ARM64 架构下,容器运行时不支持 Containerd)
  • Docker 数据路径: 默认 /var/lib/docker
  • Container 子网: 默认 172.17.0.1/16

kubernetes使用(从这里开启您的)(26)

容器网络设置
  • 网卡名称: 集群节点使用的网卡,根据实际环境填写正确的网卡名称
  • 容器网络: 支持 flannel 和 calico
  • 网络模式: flannel 支持 host-gw 和 vxlan、calico 支持 bgp 和 ipip

vxlan 和 ipip 网络模式

  • 基于隧道,在任何网络环境下都可以正常工作
  • 优势是对物理网络环境没有特殊要求,只要宿主机IP层可以路由互通即可
  • 劣势是封包和解包耗费CPU性能,且额外的封装导致带宽浪费

host-gw 和 bgp 网络模式

  • 基于路由,不适用于公有云环境
  • 优势是没有封包和解包过程,完全基于两端宿主机的路由表进行转发
  • 劣势是要求宿主机在2层网络是互通,且路由表膨胀会导致性能降低

kubernetes使用(从这里开启您的)(27)

组件设置
  • helm: 支持 v2 和 v3
  • ingress 类型: 支持 nginx-ingress 和 traefik-ingress
  • 安装 GPU 套件: 按需使用,默认选择禁用

kubernetes使用(从这里开启您的)(28)

节点信息
  • 根据不同的节点角色选择目标主机(手动模式)

kubernetes使用(从这里开启您的)(29)

  • 选择已授权部署计划,设置 Worker 节点数量(自动模式)

kubernetes使用(从这里开启您的)(30)

确认信息

kubernetes使用(从这里开启您的)(31)

日志

集群创建过程中为 Initializing 状态,点击可查看集群安装进度并支持查看当前任务的实时日志(支持手动暂停任务日志输出)

kubernetes使用(从这里开启您的)(32)

集群导入基本信息

输入要导入集群的名称、Api Server、Router、Token

kubernetes使用(从这里开启您的)(33)

示例

  • Api Server: https://172.16.10.100:8443
  • Router: 装有 kube-proxy 的任意节点的且可以被访问到的 IP 地址
  • Token: 要具有 cluster-admin 权限

# 获取 cluster-admin 权限的 token kubectl -n kube-system describe secrets kubeoperator-admin-token-m7srm Name: kubeoperator-admin-token-m7srm namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name: kubeoperator-admin kubernetes.io/service-account.uid: d3f3622-a5cb-4ad1-ab2e-53887c59007 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1038 bytes namespace: 11 bytes token: eyJhbGciOiJSUzI1NiIsImtcZCI6Ik9GN2U0SXhybVFVRV9JaFJYSTBzdXQ2Mi1WZmRHcXpIOXNDb2Rqemt0MjAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL1NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pxy9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrby1hZG1pbi10b2tlbi1tN3NybSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrby1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImQzZjM2MzIyLWE1Y2ItNGFkMS1hYjJlLTUzODg3Y2E1OTAwNyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprby1hZG1pbiJ9.HvpDTAgn0nHu0ZnyPgxOFwWKiwtyYEqWaBWTrSV7EjRcToVIrN2eR8t9kw_RiDEI93S_Nnfjw-Xj1RTRsQEkRASx5uuXMAbELWnFo-rGLR8qs0ct-1t2jGkhgBQ2WtiCqczSG-o91N7PqqYa6RMebUTjy2M7bnybKGxSq0G-StH_JrgOGLHROtvV7U9JWiv32akGXqliK09YfVY6Ykv9kg4z6MeHWvpfCBTmR0qKn9wY2qC2DHynw2Nd_5LxtHeCJGYcvflaR_kcOP4bhzqxMbtGSf0xd5GXYa1iNKGm3Hu8-FtPiDc9BuViQIzR6PvsjzaIBWVRYOxD5zf0jUz_zw使用工具

示例

  • 工具中所涉及到的镜像默认使用 KubeOperator 镜像仓库,在启用工具前,需要在 Kubernetes 节点配置私有仓库的可信任设置可以通过HTTP直接访问

vim /etc/docker/daemon.json { "insecure-registries" : [ "..." "kubeoperator-ip:8082" "..." ] } # kubeoperator-ip 为 KubeOperator 部署机 IP # 为了使得配置生效,需要重新启动 docker 服务 systemctl restart docker.service

  • KubeOperator 不能针对导入的集群进行扩缩容、备份等集群运营操作
集群运营概览
  • 集中显示了集群基本信息、容量信息和统计信息
  • 可下载 kubeconfig 文件(将 kubeconfig 文件中 cluster.server 地址修改为 master 节点 IP)

kubernetes使用(从这里开启您的)(34)

支持在 web 页面执行 kubectl 命令查询集群信息等操作

kubernetes使用(从这里开启您的)(35)

集群扩容、缩容

显示集群节点相关信息。支持针对 Kubernetes 集群 worker 节点的扩缩容

kubernetes使用(从这里开启您的)(36)

worker 节点扩容(手动模式选择要添加的主机,自动模式输入扩容后 worker 节点数量)

kubernetes使用(从这里开启您的)(37)

kubernetes使用(从这里开启您的)(38)

  • 自动模式: 删除所选节点虚拟机
  • 手动模式: 在所选节点执行卸载任务,删除该节点上安装 k8s 集群所依赖的服务(节点删除成功后,要手动重启该节点来删除虚拟网卡等信息)

kubernetes使用(从这里开启您的)(39)

命名空间
  • 列表显示为集群中现有的 namespace,支持创建和删除操作
  • 系统默认和 kube-operator namespace 不支持删除

kubernetes使用(从这里开启您的)(40)

存储

设置存储提供商(provisioner)、存储类(storageclass)、持久卷(PersistentVolume)

kubernetes使用(从这里开启您的)(41)

存储提供商

支持的类型有 nfs、external-ceph、rook-ceph、vsphere 和 oceanstor(华为 csi)

  • nfs: 需要指定 nfs 服务端版本、IP 和共享目录
  • external-ceph: 创建成功之后,会在集群中初始化 ceph provisioner 相关 pod
  • rook-ceph: 需要指定 ceph 集群所需磁盘(集群所有节点都必须包含指定的磁盘,如sdb sdc...)
  • vsphere: 集群服务器必须在指定 Folder 中(自动模式创建集群默认 Folder 为 kubeoperator),并且服务器名称要和集群 node 节点名称保持一致
  • oceanstor: 参考文档: https://github.com/Huawei/eSDK_K8S_Plugin/tree/master/docs/zh
存储类

内置 local volume 存储提供商,如需添加其他类型,需要提前创建对应类型的存储提供商

external-ceph: 需要在 Kubernetes 中创建 admin 及 user 所需的 secret

# 可在 ceph 服务端通过以下命令获得 secret key ceph auth get-key client.admin # 创建 admin secret kubectl create secret generic ceph-admin-secret \ --namespace=kube-system \ --type=kubernetes.io/rbd \ --from-literal=key=AQCtabcdKvXBORAA234AREkmsrmLdY67i8vxSQ==持久卷

支持添加 hostpath 和 local volume 两种类型的持久卷,需要提前目标主机创建文件目录

事件
  • 支持查看目标 namespace 下的系统事件
  • 支持启用 node-problem-detector

kubernetes使用(从这里开启您的)(42)

日志

需要在【工具】页面开启 ElasticSearch 或 Loki 日志组件(不支持同时开启)

kubernetes使用(从这里开启您的)(43)

监控

需要在【工具】页面开启 Prometheus 作为 Grafana 默认数据源

kubernetes使用(从这里开启您的)(44)

工具

提供 prometheus、kubeapps、grafana、elasticsearch、loki、dashboard、registry和chartmuseum 八种管理工具,可根据需要自定义安装

  • 点击启用按钮,可以设置 namespace 和是否启用存储等参数
  • 失败状态下,可点击启用按钮重新设置参数提交(会触发更新操作)

kubernetes使用(从这里开启您的)(45)

istio

默认安装版本为 1.8.0,ingress 和 egress 可根据需要手动开启

kubernetes使用(从这里开启您的)(46)

备份恢复
  • 集群备份: 支持立即备份、定时备份(需要在系统设置中设置备份账号,并授权到目标项目)
  • 集群恢复: 支持备份列表文件恢复和本地备份文件恢复(上传 etcd 快照文件)

kubernetes使用(从这里开启您的)(47)

日志

可以查看针对集群的备份、恢复记录以及任务执行异常时的错误日志

kubernetes使用(从这里开启您的)(48)

CIS 扫描

通过 CIS 安全扫描功能,可以帮助集群管理员检查Kubernetes集群是否已经安全部署

kubernetes使用(从这里开启您的)(49)

集群升级
  • 进入【项目】菜单,选中目标集群,点击【升级】按钮,选择要升级到的目标版本
  • 升级之前,会先检测当前 kubernetes 集群中 etcd、docker/containerd 和 kubernetes 版本,若检测结果为可升级,将会对 etcd、docker/containerd、kubernetes 进行统一升级,从而保证集群各组件之间的兼容性
  • 升级过程中,支持查看任务实时的日志输出

kubernetes使用(从这里开启您的)(50)

集群诊断、修复

诊断

  • 检查集群节点网络是否可用
  • 检查 kubeoperator_server 容器内是否可以 ssh 连接到 kubernetes 集群节点
  • 检查 kubeoperator_server 容器内是否可以正常调用 kubernetes api

kubernetes使用(从这里开启您的)(51)

修复

存在异常状态的情况下,可点击修复按钮来修复相关问题

kubernetes使用(从这里开启您的)(52)

kubernetes使用(从这里开启您的)(53)

集群卸载
  • 自动模式: 删除 KubeOperator 创建的虚拟机
  • 手动模式: 在集群所有节点执行卸载任务,删除安装 k8s 集群所依赖的服务(集群卸载完成后,要手动重启节点来删除虚拟网卡等信息)
  • 强制删除: 如果 k8s 集群存在失联状态的节点,可勾选强制删除来删除集群

kubernetes使用(从这里开启您的)(54)

七、官方网站

https://www.fit2cloud.com/

开源地址:https://github.com/kubeoperator/kubeoperator

八、常见命令

koctl upgrade 升级

koctl stop 停止服务

koctl start 启动服务

koct status 查看服务平台

koct restart 重启服务

九、安装目录

kubeoperator 所有安装文件都在/opt/kubeoperator 目录,可以修改里面的配置文件

十、安装密码

kubeoperator ui

访问地址:安装服务器的ip(例如我安装的服务器ip为10.0.190.153)

访问地址为:http://10.0.190.153

用户名: admin
初始密码: kubeoperator@admin123

mysql安装密码

(mysql没有映射3306端口,如果需要用客户端访问,需要把docker的3306端口映射出来)

账号:root

密码:KubeOperator123@mysql

kubeoperator_nexus

访问地址:http://10.0.190.153:8081/

账号:admin

密码:admin123

猜您喜欢: