前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TKE基于Helm的应用管理实践

TKE基于Helm的应用管理实践

原创
作者头像
jimmyhzhang
修改2019-07-08 10:56:09
1.2K0
修改2019-07-08 10:56:09
举报
文章被收录于专栏:腾讯云容器服务团队的专栏

Author: Jimmy Zhang (张浩)

K8s中使用传统方式部署应用的挑战

应用部署示例
应用部署示例
  • 编辑,部署和更新应用的众多资源描述文件心智负担较重
  • 没有统一的视图来看待一个应用的相关资源
  • 缺乏有效机制来管理应用的整个生命周期
  • 无法管理应用的依赖
  • 难以共享和复用现有的应用

什么是Helm

  • Helm是一个应用于K8s的包管理器,类似于YUM或者APT
  • Helm将原生应用程序涉及到的众多K8s资源对象打包成一个所谓的Chart,以此实现统一的管理
  • 对于应用发布者而言,可以通过Helm来打包应用,管理应用依赖关系,管理应用版本,发布到应用仓库
  • 对于应用使用者而言,使用Helm后无需手动编写Manifests文件,通过简单的操作即可完成对应用的安装,升级,回滚,卸载

Helm核心概念

  • Chart:Helm的软件包,采用TAR格式,它包含了一组相关的K8s资源对象的Yaml文件
  • Release:Chart包的一个部署实例,包含了特定的配置
  • Repository:Helm的软件仓库,本质上是一个Web服务器,包含了若干的Chart包和一个index文件
  • Helm:客户端命令行工具,用于完成Chart的制作,部署以及一系列管理操作
  • Tiller:Helm的服务端组件,部署在K8s集群中,用于完成Helm的请求,实现针对Release的一系列操作

Helm系统架构

Helm系统架构
Helm系统架构

云上集成Helm的问题

  • 如何满足用户通过控制台来管理应用的需求?
  • 如何将Helm命令行客户端的功能集成到控制台?
  • 如何最大限度兼容Helm原生功能,同时降低用户的使用门槛?
  • 如何与应用仓库相结合以完成闭环操作?

TKE集成Helm的系统架构

TKE集成Helm的系统架构
TKE集成Helm的系统架构

核心实现

  • gRPC转REST 通过引入appscode/swift项目将Tiller 服务代理为适合控制台的REST接口
  • Sync转Async 通过开发一个swift的反向代理组件 将某些耗时较多的同步操作异步化
  • 返回特定的结构化数据 反向代理中包装Helm原生接口 维护TKE自定义的业务数据

实现功能

  • Helm功能的开通
  • 应用的创建,展示,更新,回滚,删除
  • 应用的自定义配置
  • 应用所包含的资源展示

界面示例

Helm功能开通
Helm功能开通
应用详情
应用详情
版本历史
版本历史
资源列表
资源列表
资源状态
资源状态

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • K8s中使用传统方式部署应用的挑战
  • 什么是Helm
  • Helm核心概念
  • Helm系统架构
  • 云上集成Helm的问题
  • TKE集成Helm的系统架构
  • 核心实现
  • 实现功能
  • 界面示例
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档