kubernetes社区项目生态概览

作为容器集群管理技术的最流行的技术,kubernetes,自从2014在github上开源后,已经通过多个项目形成了一个生态,以下是从用户角度对这些项目做一个基本的认知

kubernetes

主项目,实现了容器集群的调度管理,并以restful接口的形式暴露出来,可以认为是云操作系统的的内核

apimachinery

客户端和主项目共同依赖的一个库,开发者使用

dashboard

官方Web界面,降低用户使用难度

test-infra

测试工具

frakti

用于驱动hyper启动独立内核的虚拟机 容器,达到内核级别隔离,比docker方式更安全,代价是资源消耗更多外加操控不方便

minikube

单机上快速启动kubernetes,之所以有这个项目是因为kubernete本身的安装部署是针对大型系统的,在单机上没有docker那么方便

helm

helm可以认为是kubernete上解决安装容器之间互相依赖的工具

charts

charts是helm包的服务端定义

client-go

客户端SDK

ingress

用于动态连接外部LB并提供服务

kubeadm

这是文档项目,kubeadm是用来在各种异构IaaS上安装kubernetes的

dns

在容器集群上提供dns服务

release

用于在各个操作系统上发布安装包

node-problem-detector

节点问题探测器,本身是kubernetes的一个应用

kube-state-metrics

对集群监控数据状态的加工并再次处理

heapster

监控数据转发项目

kops

又一个kubernete在云上的安装工具,看来安装果然是一大痛点

简单点评

目前整个社区明显是采用了集市方式而非大教堂的方式来开发,主项目内部概念内聚,外部各种项目蓬勃发展,外围项目中又以kubernetes系统的IaaS部署、监控、图形化、应用依赖管理这四者的项目关注度和贡献度最高,也是用户的痛点所在,目前社区获得的关注度很高,但在端到端的用户体验上还有很长的路要走。

上一篇:ETCD网络层实现(待完成)


下一篇:Kubernetes概览