108
100个容器周边项目,点亮你的容器集群技能树
source link: http://www.10tiao.com/html/217/201807/2649698398/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
大规模的容器技术运用从来不是一项独立工程,而是一个汇集虚拟化技术、容器编排、任务调度、操作系统、容器仓库、跨节点网络、分布式存储、动态扩缩、负载均衡、日志监控、故障自恢复等系统性难题的复杂有机体。随着Docker的诞生和Google等互联网公司的推波助澜,这个领域出现了一大批优秀的开源项目,它们在简化容器技术使用成本的同时,也经常使得刚刚接触容器时间不太长的开发者和企业用户感到不知所措。
将知识分类是梳理零散信息的一种有效方式。对于容器技术的生态圈来说,其中涉及领域众多,有的项目横跨多个细分领域,有的项目则是针对特定场景需求定制的,难以对其功能类型做精确定义。不过,若仅考虑通用领域里的相关产品和工具,大致来说可以划分成14种主要类别。
以下将围绕容器生态,分别举例介绍这些类别中的典型开源项目,以及部分虽未开源但比较常用的100个周边产品。
1. 容器引擎
001. Docker:https://www.docker.com 002. Rkt:https://coreos.com/rkt 003. Systemd-nspawn:https://www.freedesktop.org/wiki/Software/systemd 004. Hyper:https://hyper.sh 005. Garden:https://github.com/cloudfoundry/garden 006. LXC:https://linuxcontainers.org 007. Photon:https://github.com/vmware/photon 008. Vagga:https://github.com/tailhook/vagga 009. gVisor:https://github.com/google/gvisor 010. Pouch:https://github.com/alibaba/pouch
这些项目只是众多支持不同平台和具有不同特性的容器引擎的冰山一角。例如Google曾经主导的lmctfy(http://lmctfy.io/)项目也是个十分优秀的容器引擎,然而该项目自2015年以后就不再被维护了。而最近Google刚刚开源的gVisor则是该领域中的新秀。另外值得一说的是,Hyper采用虚拟机的方式对环境进行隔离,并不是一种基于容器的隔离方案,但它能很好地与Docker或Kubernetes等容器集群技术相结合,取代其环境隔离的功能,因此也归属此列。
2. 监控和数据收集
011. cAdvisor:https://github.com/google/cadvisor 012. Sysdig:http://sysdig.org 013. Prometheus:https://prometheus.io 014. TICK-Stack:https://influxdata.com 015. Docker-Alertd:https://github.com/deltaskelta/docker-alertd 016. Grafana:https://grafana.com
其中的TICK-Stack指的是Influxdata推出的Telegraf、InfluxDB、Chronograf、Kapacitor四款开源工具,不过从1.0以后,这些工具在开源版基础上提供了企业版本,后者提供了例如高可用、云端存储等企业级功能。
3. 容器管理和界面工具
017. Kitematic:https://kitematic.com 018. DockerUI:https://github.com/crosbymichael/dockerui 019. Panamax:http://panamax.io 020. Rapid Dashboard:https://github.com/ozlerhakan/rapid 021. Cockpit:http://cockpit-project.org 022. Portainer:https://www.portainer.io 023. Shipyard:http://shipyard-project.com 024. Seagull:https://github.com/tobegit3hub/seagull 025. Dockeron:https://github.com/dockeron/dockeron 026. DockStation:https://dockstation.io
4. 基础设施集成
027. Nova-docker:https://github.com/stackforge/nova-docker 028. Magnum:https://github.com/openstack/magnum 029. Machine:https://docs.docker.com/machine 030. Boot2Docker:https://github.com/boot2docker/boot2docker 031. Clocker:https://github.com/brooklyncentral/clocker 032. MaestroNG:https://github.com/signalfuse/maestro-ng
Nova-docker和Magnum都是在OpenStack集成容器集群的项目,不过目前OpenStack官方正在尝试通过让Kubernetes直接创建虚拟机的方式来统一它在IaaS层和CaaS层的差异,其中的Nova-docker已经被废弃了。Machine是Docker公司推出的基础设施管理工具,Boot2Docker曾经是在Windows和Mac上使用Docker的官方方案,但随着Docker 1.12版本发布了多种操作系统的发行版后,已经不再被推荐使用了。
5. 编排和调度
033. SwarmKit:https://github.com/docker/swarmkit 034. Kubernetes:http://kubernetes.io 035. Marathon:https://github.com/mesosphere/marathon 036. Rancher:http://www.rancher.io 037. Nomad:https://github.com/hashicorp/nomad 038. OpenShift:https://www.openshift.com 039. Crane:https://github.com/michaelsauter/crane 040. Nebula:https://github.com/nebula-orchestrator 041. GearD:http://openshift.github.io/geard
其中的OpenShift主要是指其3.0之后的发行版,它是红帽公司基于Kubernetes二次开发的集持续集成和交付于一体的容器集群方案,具有开源和商业两个版本。
6. 容器镜像仓库
042. Repository:https://github.com/docker/distribution 043. Nexus:http://www.sonatype.org/nexus 044. Habor:http://vmware.github.io/harbor 045. Portus:https://github.com/SUSE/Portus 046. Docker Registry UI:https://github.com/atcol/docker-registry-ui 047. Dragonfly:https://github.com/alibaba/Dragonfly
其中的Nexus是一种通用的软件包仓库解决方案,支持包括Maven、NPM、PIP、RPM等许多主流打包格式的分发和管理,它是在3.0以后的版本中开始支持作为Docker镜像仓库的。VMWare推出的Habor是目前相对常用的企业级开源Docker仓库解决方案。Portus和Docker Registry UI是基于官方Repository镜像仓库的界面化管理工具。Dragonfly是一款P2P协议的镜像分发工具,并非直接提供镜像存储功能,但也属于仓库辅助类的工具。
7. 服务发现和容器域名服务
048. Etcd:https://github.com/coreos/etcd 049. Consul:http://www.consul.io 050. ZooKeeper:https://zookeeper.apache.org 051. Eureka:https://github.com/Netflix/eureka 052. Traefik:https://traefik.io 053. Muguet:https://github.com/mattallty/muguet 054. Registrator:https://github.com/gliderlabs/registrator 055. SkyDNS:https://github.com/skynetservices/skydns
8. 容器日志收集处理
056. Splunk:https://www.splunk.com 057. Fluentd:https://www.fluentd.org 058. ElasticStack:https://www.elastic.co 059. Flume:https://flume.apache.org 060. Rsyslog:https://www.rsyslog.com/
ElasticStack是Beats、Logstash、ElasticSearch和Kibana四款开源项目的统称,这是一套十分流行的日志汇聚、处理、存储和展示的工具组合。其中的ElasticSearch和Kibana也可以与Fluentd配合,形成端到端日志处理方案。另外值得指出的是,Splunk并不是开源或免费的,但它在企业级日志处理方案中的应用十分广泛。
9. 容器相关的系统发行版
061. Container Linux:http://coreos.com 062. Project Atomic:http://www.projectatomic.io 063. RancherOS:http://rancher.com/rancher-os 064. ClearLinux:https://clearlinux.org 065. Photon OS:https://vmware.github.io/photon 066. CargoOS:https://cargos.io 067. SmartOS:https://www.joyent.com/smartos
10. 容器平台
068. Deis:https://deis.com 069. Flynn:http://flynn.io 070. Dokku:https://github.com/progrium/dokku 071. Fabric8:http://fabric8.io 072. Kel:http://www.kelproject.com 073. Nanobox:https://nanobox.io 074. Tsuru:https://tsuru.io
除了这些开源的容器平台服务实现之外,互联网上还有许多在线按量付费的容器即服务平台,它们也是整个容器集群生态的一部分。
11. 容器网络
075. Libnetwork:https://github.com/docker/libnetwork 076. Flannel:https://github.com/coreos/flannel 077. Calico:http://www.projectcalico.org 078. Weave:https://github.com/zettio/weave 079. Romana:http://romana.io 080. Canal:https://github.com/projectcalico/canal 081. Open vSwitch:http://openvswitch.org 082. Pipework:https://github.com/jpetazzo/pipework
这些网络方案大多采用了七层网络的Overlay Network方式,也就是在容器之间通信的网络包上封装了用于路由寻址的额外包头,这种方式会导致网络通信效率的下降,具体影响程度与所封装的额外数据大小有关。而Calico采用修改每个主机节点上的IPtables和路由表规则实现容器间数据路由和访问控制,属于三层网络的方式,这种方案在节点规模不太大(最多几百个节点)时的效率优势十分明显,是一种比较受推荐的容器网络工具。除了这些较常用的方案外,一些条件允许的企业也会结合MacVLAN等二层网络方案实现容器的互联,以获得更好的网络性能。
12. 容器安全
083. Notary:https://github.com/docker/notary 084. Clair:https://github.com/coreos/clair 085. AppArmor:http://wiki.apparmor.net/index.php/Main_Page 086. SELinux:https://selinuxproject.org 087. Twistlock:https://www.twistlock.com 088. OpenSCAP:https://github.com/OpenSCAP/container-compliance
13. 容器数据持久化
089. Flocker :https://github.com/clusterhq/flocker 090. Convoy:https://github.com/rancher/convoy 091. REX-Ray:https://github.com/codedellemc/rexray 092. Netshare:https://github.com/ContainX/docker-volume-netshare 093. OpenStorage:https://github.com/libopenstorage/openstorage
其中Ceph是通用的网络存储工具,同时提供块存储和对象存储能力,对容器化场景下的应用数据持久化具有良好的支持。
14. 容器相关开发流程工具
094. Drone.io:https://drone.io 095. Shippable:http://shippable.com 096. Cyclone:https://github.com/caicloud/cyclone 097. Screwdriver:http://screwdriver.cd 098. WatchTower:https://github.com/v2tec/watchtower 099. Wercker:http://wercker.com 100. Totem:http://totem.github.io
原文链接:https://yq.aliyun.com/articles/593097
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK