Code Monkey home page Code Monkey logo

bk-bcs-saas's Introduction

蓝鲸智云容器管理平台SaaS

license Release Version PRs Welcome BK Pipelines Status

(English Documents Available)

提示: ⚠️ 当前项目不再维护,已整体迁移至BK-BCS仓库下

蓝鲸智云容器管理平台(BCS,BlueKing Container Service)是高度可扩展、灵活易用的容器管理服务。蓝鲸容器管理平台支持两种不同的集群模式,分别为原生Kubernetes模式和基于Mesos自研的模式。使用该平台,用户无需关注基础设施的安装、运维和管理,只需要调用简单的API,或者在页面上进行简单的配置,便可对容器进行启动、停止等操作,查看集群、容器及服务的状态,以及使用各种组件服务。用户可以依据自身的需要选择集群模式和容器编排的方式,以满足业务的特定要求。

本次开源的是蓝鲸智云容器管理平台的SaaS,它提供了友好的操作界面,支持对项目集群、节点、命名空间、部署配置、仓库镜像、应用等进行可视化界面操作管理,并提供了WebConsole可快捷查看集群状态的命令行服务,针对K8S集群模式支持使用Helm进行K8S应用的部署和管理。

蓝鲸智云容器管理平台的SaaS源码包含:

  • bcs-app:SaaS产品层主体功能模块,负责项目集群、节点、命名空间、部署配置、仓库镜像、应用等进行可视化界面操作管理,以及WebConsole、Helm等服务
  • bcs-cc:配置中心模块,负责集群版本、快照等信息管理
  • bcs-projmgr:项目信息管理模块,负责项目创建及基本信息管理

Overview

Features

  • 集群管理:支持自定义设定Master和Node节点,一键自动安装集群组件,按业务架构划分集群,保证安全可靠。支持动态伸缩,可以实时添加/剔除集群节点,支持集群和节点级别的监控告警及主要数据的视图展示
  • 模板管理:支持模板集的多版本管理,支持通过命名空间管理不同的环境
  • 应用管理:通过应用视图或者命名空间视图管理容器,查看应用、POD、容器等的在线状态。启停容器,重新调度容器,对应用做扩缩容、滚动升级等更新操作
  • 镜像管理:对接harbor镜像仓库,镜像信息在线管理
  • 网络管理:查看服务的列表,以及每个服务的详细信息,对服务进行操作,例如更新服务或者停止服务。查看线上负载均衡器列表,及每个负载均衡器的详细信息,启动、删除或者更新负载均衡器
  • WebConsole:快捷查看集群状态的命令行工具服务
  • Helm:支持K8S应用的部署和管理工具Helm

详细介绍请参考功能说明

Getting started

Roadmap

Support

BlueKing Community

  • BK-CMDB:蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。
  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。
  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。
  • BK-JOB:蓝鲸作业平台(Job)是一套运维脚本管理系统,具备海量任务并发处理能力。
  • BK-BASE:蓝鲸基础计算平台(BK-BASE)是一个专注于运维领域的的基础平台,打造一站式、低门槛的基础服务。

Contributing

对于项目感兴趣,想一起贡献并完善项目请参阅Contributing Guide

腾讯开源激励计划 鼓励开发者的参与和贡献,期待你的加入。

FAQ

请查看 FAQ

License

基于 MIT 协议, 详细请参考LICENSE

bk-bcs-saas's People

Contributors

caohua avatar daryl0819 avatar dellkeji avatar freyzheng avatar hubuhito avatar ielgnaw avatar ifooth avatar jamesgetx avatar narasux avatar piglei avatar sundytt avatar terlinhe avatar vhwweng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bk-bcs-saas's Issues

npm run public运行报错

Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.

  • options[0] misses the property 'patterns'. Should be:
    [non-empty string | object { from, to?, context?, globOptions?, toType?, force?, flatten?, transform?, cacheTransform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item)
    ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
    at validate (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/copy-webpack-plugin/node_modules/schema-utils/dist/validate.js:96:11)
    at new CopyPlugin (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/copy-webpack-plugin/dist/index.js:24:30)
    at module.exports (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/webpack.config.js:116:13)
    at handleFunction (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/utils/prepareOptions.js:21:13)
    at prepareOptions (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/utils/prepareOptions.js:9:5)
    at requireConfig (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/utils/convert-argv.js:117:14)
    at /data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/utils/convert-argv.js:123:17
    at Array.forEach ()
    at module.exports (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/utils/convert-argv.js:121:15)
    at yargs.parse (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/cli.js:71:45)
    at Object.parse (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/node_modules/yargs/yargs.js:567:18)
    at /data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/cli.js:49:8
    at Object. (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack-cli/bin/cli.js:366:3)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object. (/data/workspace/src/bk-bcs-saas-master/bcs-projmgr/frontend/node_modules/webpack/bin/webpack.js:156:2)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! [email protected] public: npm run dll && webpack --mode production
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] public script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-06-11T02_39_30_076Z-debug.log

添加故障节点的移除功能

需求:

当集群中节点出现故障时,可以允许集群维护人员,删除故障节点记录,并提示维护人员相关注意事项

集群资源视图 查看类

是BUG反馈还是需求提交(Is this a BUG REPORT or FEATURE REQUEST)? (choose one):
需求提交

期望是什么(What you expected to happen):
以集群纬度展示集群资源,包括工作负载,存储,网络,HPA等信息

备注:
页面资源包含:

  • 命名空间

  • 工作负载

    • deployments
    • daemonSets
    • cronJobs
    • jobs
    • statefulSets
    • pods
    • [pending] gameStatefulSets
    • [pending] gameDeployments
    • [pending] customObjects
  • 网络

    • service
    • ingress
    • endpoints
  • 配置类

    • configMaps
    • secrets
  • [pending] HPA (HorizontalPodAutoscalers)

  • 存储

    • persistentVolume
    • persistentVolumeClaim
    • storageClass
  • RBAC

    • ServiceAccounts
  • 更多资源

升级容器服务前端控件

容器服务所用前端控件版本较低,不便于后续新功能的开发与扩展,需要规划升级

  • 【组件升级】表格替换 #813

  • 【组件升级】封装bk-switcher #812 hw

  • 【组件升级】封装bk-paging table #811 dg

  • 【组件升级】封装bk-tab #810 hw

  • 【组件升级】封装bk-sideslider #809 hw

  • 【组件升级】封装bk-dropdown #808 ch

  • 【组件升级】封装bk-tooltip #807 ch

  • 【组件升级】封装bk-dialog #806 hw

  • 【组件升级】封装bk-collapse #805 hw

  • 【组件升级】封装bk-checkbox #804 dg

  • 【组件升级】封装bk-input #803 dg

  • 【组件升级】封装bk-select #802 ch

  • 【组件升级】封装bk-button #801 ch

模板集构建release概念模型

模板集实例化后,生成一条release记录。基于release记录,管理和维护后续的CRUD

  • 模板集同名小版本
  • 构建release模型
  • 原有实例化render manifest逻辑适配

bcs-app打包部署后异常

bcs-app打包部署后访问找不到前端资源,bcs-app的前端资源需要自己添加吗?自己把前端资源编译好后应该放在那个路径下呢?(以backend路径层级开始),另外webconsole在没有社区版支持的情况下应该如何启动呢?

重构统一异常模块

现在项目中异常与错误码模块分散,感觉像定义了几套,需要统一:
backend/utils目录下,errcodes,error_codes和exceptions

【组件升级】表格替换

涉及如下页面

  • 节点 - 列表 wl
  • 命名空间 - 列表 hw
  • 变量管理 - 列表 dg
  • Metric管理 - 列表 wl
  • 网络 - service - 列表 ch
  • 网络 - ingress - 列表 ch
  • 网络 - Loadbalancer - 列表 ch
  • 配置 - Configmap - 列表 hw
  • 配置 -Secret - 列表 hw
  • HPA管理 - 列表 hw
  • 存储 - PersistentVolume -列表 wl
  • 存储 - PersistentVolumeClaim -列表 wl
  • 存储 - StorageClass -列表 wl
  • 日志采集 - 日志采集规则 - 列表 ch
  • DB授权配置管理 - 列表 ch
  • 操作审计 - 列表 dg
  • 事件查询 - 列表 hw

希望优化包路径问题

是BUG反馈还是需求提交(Is this a BUG REPORT or FEATURE REQUEST)? (choose one):
BUG REPORT
BK-BCS-SaaS 版本(The versions used):
1.12.7
发生了什么(What happened):
导入包路径问题:bcs-cc中的go代码,import使用的是bcs_cc但该目录应该为bcs-cc。 另外由于golang $GOPATH配置后查找的是$GOPATH/src目录下的包,因此无法直接找到import "bcs_cc/config"
期望是什么(What you expected to happen):
优化import路径,例如:import "bk-bcs-saas/bcs_cc/config" 并修正包bcs-cc的包名
如何复现(How to reproduce it):
直接clone代码到idea,就可以看到无法正确找到包和模块
相关的日志详情和截图等(Log & Screenshot):

备注(Anything else we need to know):

bcs_projmgr访问身份校验不通过

bcs_projmgr部署完成后通过paas平台访问,/user/projects/ 400报错(bkToken参数缺失), /user/users/ 400报错(bk_token参数缺失),在cookie中有bk_token!请问这是什么原因?是需要在哪里添加token信息呢?是bk_token还是bkToken呢?有办法关闭身份校验吗?

重构:对现有 project_id / cluster_id 建模,简化目前大部分函数签名

大多数函数目前都需要接受 project_id、cluster_id 参数,通过增加新的类型,我们可以简化目前的大部分函数签名,比如:

# 调整前:
def get_dynamic_client(access_token: str, project_id: str, cluster_id: str):

# 调整后:
def get_dynamic_client(cluster: AuthedCluster):

更多细节需要讨论后决定

重构 get_dynamic_client 对 access_token 的依赖链路

目前,get_dynamic_client() 函数直接依赖了 access_token。经过探讨后,决定重构这部分依赖逻辑:

  • 增加新对象:BkApiCredential
  • get_dynamic_client() 不再直接依赖 access_token,而是依赖包括鉴权信息的 bke_client 对象
  • 该方法可能会同时增加 PaaSCC 相关 Client 对象

部署bcs-app后访问异常

成功部署bcs-app后访问paas.bk.com/o/bk_bcs_app后会重新重定向至paas.bk.com/o/bk_bcs_app/None/console,且后面的None/console会一直向后添加,请问下是什么原因?需要怎么解决?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.