公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
KubeGems 是一款以围绕 Kubernetes 通过自研和集成云原生项目而构建的通用性开源 PaaS 云管理平台。经过近一年的持续迭代,当前 KubeGems 的核心功能已经初步具备多云多租户场景下的统一管理。并通过插件化的方式,在用户界面中灵敏控制包括监控系统、日志系统、微效劳治理等众多插件的启用和关闭。
作为一个面向云原生的通用型云平台,KubeGems 从立项开端就把支持多集群、多租户场景下的资源隔离作为其主要实现设计目的。用户可以对接入平台的 Kubernetes 集群做 租户级 的自定义资源规划。除此之外,我们提供了比原生 Dashboard 功能更加丰富且人性化操作的 UI 界面,让用户/企业根据自身场景规划平台元数据,而不用担忧自己的业务和数据呈现错乱。
同时 KubeGems 也提供过了众多丰富的功能模块来为个人或企业用户带来更好的使用体验,例如 访问控制、资源规划、网络隔离、租户网关、存储卷、可观察性、用户审计、证书管理、金丝雀发布、istio治理 等功能。
介绍
KubeGems 广泛的使用来自包括 云原生基金会(CNCF) 和 Istio社区 开源的产品,并在此根底上做了二次开发和适配。针对产品内部比较通用的需求,KubeGems也会及时将代码以PR的方式回馈社区,以保证产品可以与社区停止同步更新。
为更好地降低用户对云原生生态内的熟悉门槛,KubeGems 提供了专门的装置控制器对集成的三方插件停止集中管理,并以此保证我们的产品能始终如一的部署在不同方式构建的 Kubernetes 集群之上,使用户能更完好可以体验到 KubeGems 的功能。
在 v1.20.0 版本中,KubeGems 内部集成了近 30 来个效劳,您可以自由选择是否启用它们。
装置
KubeGems Installer Operator 是一个通过 Operator SDK 构建的 Ansible Kubernetes 控制器。通过 CRD 中的定义的字段对 Ansible 停止变量传送。Installer Operator 的运行需要具备集群管理员的 RBAC 权限,所以在部署前需要联络您的集群管理员,以保证有足够的受权执行以下操作。
首先使用如下所示命令装置 KubeGems Installer 控制器:
KUBEGEMS_VERSION=v1.20.0-beta.1kubectl apply -n kubegems-installer -f \https://github.com/kubegems/installer-operator/releases/download/${KUBEGEMS_VERSION}/centrol.yamlCRD 与控制器部署完成后就可以开端创建 installer 对象停止装置:
kubectl apply -f https://github.com/kubegems/installer-operator/releases/download/${KUBEGEMS_VERSION}/centrol.installer.yamlKubeGems 部署完成后,正常会有如下所示的 Pod 列表:
当部署胜利后,可以在 gemcloud-gateway-system 命名空间下找到一个名叫 deftault-gateway 的网关,它由 KubeGems 自动创建。
kubectl get pod -n gemcloud-gateway-systemNAME READY STATUS RESTARTS AGEdefault-gateway-5bcb8bc59c-2fcq4 1/1 Running 0 7d7hnginx-ingress-operator-controller-manager-56bcddd997-kbjqw 2/2 Running 0 7d7hkubectl get svc -n gemcloud-gateway-systemNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEdefault-gateway NodePort 10.102.206.7 <none> 80:32717/TCP,443:30557/TCP 7d7hnginx-ingress-operator-controller-manager-metrics-service ClusterIP 10.96.47.121 <none> 8443/TCP 7d8hnginx-ingress-operator-metrics ClusterIP 10.111.159.25 <none> 9113/TCP 7d8h可以再创建一条 ingress 规则将 kubegems dashboard 效劳暴露出来,如下所示:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: gems-dashboard namespace: gemcloud-system annotations: nginx.org/proxy-buffering: "false" nginx.org/websocket-services: gems-dashboardspec: rules: - host: console.kubegems.io http: paths: - backend: serviceName: gems-dashboard servicePort: 8000 path: / pathType: ImplementationSpecific此时,您需要将域名 console.kubegems.io 解析到 Kubernetes 集群内任意节点后,即可通过 http://console.kubegems.io:<NodePort> 访问页面。
使用
导入集群
使用 admin 账号登录 KubeGems 管理后台,点击右下角 【工具箱】 图标,进入 【系统管理】
点击 【创建集群】,将集群的 kubeconfig 文件粘贴至文本框。
输入集群名称和集群容器运行时类型,勾选上 控制集群。
信息
控制集群不会注入 gem-insatller-manager 效劳。
集群导入胜利,并且状态正常后,点击 【详情】进入集群信息管理页面
集群详情页包含了集群的根本状态、证书信息、监控指标、物理资源、资源类型以及使用统计等信息。
租户管理
使用 admin 账号登录 KubeGems 管理后台,点击左上角【集群资源】卡片,进入【平台管理】
点击租户列表右上角的 创建租户 按钮,创建一个名为 demo 的租户
点击 demo,进入租户详情页,里面可以管理租户成员以及集群的资源配额管理
点击 添加集群资源,选择cluster-demo集群,为 demo 租户分配 8Core 16G 内存和 100G 硬盘
租户空间
点击 KubeGems 顶部栏中的【工作台】进入租户空间,并点击【用户头像】可以自由切换租户空间
点击 【创建项目】 为租户创建一个名为 demo 项目空间,并选择可以依照角色添加成员至该项目空间
进入 demo 项目空间,点击右上角的【创建环境】创建一个名为 demo-env 的环境空间
注意:环境空间的删除战略为 仅删除关联 和 删除整个命名空间,它们之间的主要区别控制删除环境时,控制器的行为。
创建工作负载
进入环境空间,点击左部侧边栏,选择【运行时】 - 【工作负载】,进入工作负载管理页面
点击右上角 【创建工作负载】,根据页面引导创建 deployment 资源
当 deployment 资源创建胜利后可以【工作负载】和【容器组】页面内查看创建的容器资源信息。您也可以点击相关资源进入详情页阅读资源细节。
详情页提供的资源包含不限于:
进入环境空间,点击左部侧边栏,选择【运行时】 - 【效劳】,进入效劳管理页面,根据页面引导创建 Serivce
进入环境空间,点击左部侧边栏,选择【运行时】 - 【路由】,进入效劳路由管理界面,根据页面引导创建 Ingress
创建完成后点击 demo-http ,进入 ingress 详情页,在路由【路由规则】处,点击【访问】可以直接访问效劳 Web 页面
更多使用方式可查看官方文档理解更多信息:https://www.kubegems.io/。另外官方也提供了一个在线的 Demo 体验地址:https://demo.kubegems.io,账号 admin,密码 demo!@#admin。
GitHub 仓库:https://github.com/kubegems/kubegems
本文借鉴自:「Github喜好者」,原文:https://url.hi-linux.com/Vn7vw,版权归原作者所有。欢送投稿,投稿邮箱: editor@hi-linux.com。
最近,我们建立了一个技术交流微信群。目前群里已参与了不少行业内的大神,有兴趣的同学可以参与和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。
你可能还喜欢
点击下方图片即可阅读
如何优雅晋级 Kubernetes 集群的 Docker 和 Containerd 版本
点击上方图片,『美团|饿了么』外卖红包天天免费领
更多有趣的互联网新颖事,关注「奇妙的互联网」视频号全理解! |