查看原文
其他

TechTalk | KubeOperator测试小结

陈涛 神州数码集团 2022-07-03





KubeOperator介绍

KubeOperator 是一个开源项目,在离线网络环境下,通过可视化 Web UI 在 VMware、Openstack 或者物理机上规划、部署和运营生产级别的 Kubernetes 集群,KubeOperator 使用 Terraform 在 IaaS 平台上自动创建k8s集群,实现k8s即服务。KubeOperator 内置 KubeApps Plus 应用商店,以支撑各种基于 k8s 的应用场景,如:

  • CI / CD 应用场景:GitLab、Jenkins、Harbor、Sonarqube、Argo CD 等;

  • GPU / AI 应用场景:Tensorflow、PyTorch 等;

  • Serverless 应用场景:Knative 等;

  • 数据库应用场景:MySQL、Redis 等;


KubeOperator在Vmware上实现

本次实验室主要测试Vmware环境下部署kubeoperator,以及KubeApps Plus 应用商店中GitLab、Jenkins、Harbor等应用部署。

详细部署过程可参考官方文档:https://docs.kubeoperator.io/KubeOperator-v2.5/introduction/,

部署过程分为三部分,1.KubeOperator软件部署 2.KubeOperator创建k8s集群 3.应用部署

1) KubeOperator软件部署及作用

A. 可以是一台虚拟机,推荐配置4 核 16G 内存 100G 磁盘,操作系统安装centos7.6以上,安装路径剩余空间大于50G,需提前安装docker 用于脚本中拉取安装镜像。

需准备外网环境,需从外网拉取镜像。

B. 最基本部署和管理k8s集群功能,可以通过web GUI来管理k8s集群生命周期,包含部署、监控、升级,日志收集。k8s集群创建成功后,可独立于KubeOperator提供服务,是一种解耦合架构,即使KubeOperator 宕掉也不会影响k8s集群,类似于灵雀云的init节点。

C. 软件功能亮点是包含KubeApps Plus 应用商店,对于网络环境比较封闭的客户,可以实现离线部署应用,但前提是从官网下载离线包。

D.KubeOperator部署过程很简单,软件大概有6G左右,安装过程10分钟。下图是KubeOperator界面:


2) k8s集群创建

A. 整个过程可以通过web GUI向导方式实现,在VMware上部署集群不需要提前准备虚机,这个比灵雀云做的比较好,灵雀云管理集群和业务集群需要准备虚机或物理机。

B. 创建集群前需要按照手册准备环境,如DNS,NTP,外部存储等,在VMware上实现需要提供Vcenter的信息,本次部署中遇到NFS外置存储问题,在linux上自建的NFS上对访问权限上有限制,最后换成VNXE3200提供的NFS共享才解决,怀疑在向导创建过程中会在NFS存储上创建文件,如果NFS的读写权限有问题,是无法通过检测的。报错如下:

TASK [cluster-storage : 轮询等待 storageclass验证结果] *********************************

FAILED - RETRYING: 轮询等待 storageclass验证结果 (10 retries left).

C. 部署集群过程实际上是在运行脚本,建议要有外网,会下载很多组件。

3) 应用商店

A. 在每个集群中都会有一个应用商店,没有安装Helm Charts 离线包前,是没有任何应用的。需下载官方提供的离线包,大概2G,安装Helm Chart过程,也是脚本形式,自己看了下脚本运行的过程,应该是把离线包的images push到了本集群的镜像仓库。创建完成后下图的镜像仓库和应用商店就会有内容。

B. 本次测试的GitLab、Jenkins、Harbor应用,部署过程均是一键部署,无需自己创建yaml文件而且还可以按照自己环境修改yaml文件,部署过程很简单。

C. 应用web访问比较依赖DNS,需要在DNS上设置集群相关的解析

70.70.70.98 grafana.apps.cluster-ct10.yjs.com

70.70.70.98 prometheus.apps.cluster-ct10.yjs.com

70.70.70.98 registry-ui.apps.cluster-ct10.yjs.com

70.70.70.98 kubeapps-plus.apps.cluster-ct10.yjs.com


总结

对k8s集群运维来说,KubeOperator可实现k8s集群生命周期WEB GUI方式管理。无需准备虚机环境,可在向导中实自动创建。本次只是在VMware上做了功能实现,在其他平台上的实现也是大同小异。整个软件部署过程简单,技术门槛低。应用商店可实现一键部署应用,无需太多yaml文件的改动。在高可用方面,采用了公有云的region/zone设计理念,在VMware上就对应不同的datacenter/cluster.在备份集群方面也提供了备份模块。对于k8s技术能力不高的用户是一个很好的管理平台。




延展阅读



· TechTalk | Bluenic 之 Azure 数据工厂落地实践

· TechTalk | 亲测VxFlex部署在ESXI6.7,配置数据网络一点探讨





.

.

.

.

.

.

233269

您可能也对以下帖子感兴趣

Sealos Devbox 发布,珍爱生命,远离 CI/CD
Go 语言实现的轻量级 Linux 虚拟机
29.9K Star百万用户!!!下载超34亿次的Docker可视化项目
.NET云原生应用实践(三):连接到PostgreSQL数据库
一篇文章告诉你 Devbox 是如何从架构上干掉 CI/CD 的,连渣都不剩

文章有问题?点此查看未经处理的缓存