国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
100個(gè)容器周邊項(xiàng)目,點(diǎn)亮你的容器集群技能樹

大規(guī)模的容器技術(shù)運(yùn)用從來(lái)不是一項(xiàng)獨(dú)立工程,而是一個(gè)匯集虛擬化技術(shù)、容器編排、任務(wù)調(diào)度、操作系統(tǒng)、容器倉(cāng)庫(kù)、跨節(jié)點(diǎn)網(wǎng)絡(luò)、分布式存儲(chǔ)、動(dòng)態(tài)擴(kuò)縮、負(fù)載均衡、日志監(jiān)控、故障自恢復(fù)等系統(tǒng)性難題的復(fù)雜有機(jī)體。隨著Docker的誕生和Google等互聯(lián)網(wǎng)公司的推波助瀾,這個(gè)領(lǐng)域出現(xiàn)了一大批優(yōu)秀的開源項(xiàng)目,它們?cè)诤?jiǎn)化容器技術(shù)使用成本的同時(shí),也經(jīng)常使得剛剛接觸容器時(shí)間不太長(zhǎng)的開發(fā)者和企業(yè)用戶感到不知所措。

將知識(shí)分類是梳理零散信息的一種有效方式。對(duì)于容器技術(shù)的生態(tài)圈來(lái)說(shuō),其中涉及領(lǐng)域眾多,有的項(xiàng)目橫跨多個(gè)細(xì)分領(lǐng)域,有的項(xiàng)目則是針對(duì)特定場(chǎng)景需求定制的,難以對(duì)其功能類型做精確定義。不過,若僅考慮通用領(lǐng)域里的相關(guān)產(chǎn)品和工具,大致來(lái)說(shuō)可以劃分成14種主要類別。


以下將圍繞容器生態(tài),分別舉例介紹這些類別中的典型開源項(xiàng)目,以及部分雖未開源但比較常用的100個(gè)周邊產(chǎn)品。

1. 容器引擎

容器引擎是容器集群生態(tài)圈的核心部分,它是與內(nèi)核Namespace和CGroup等功能直接交互,并提供相應(yīng)API使得外部能夠與之集成的工具或服務(wù)。Docker無(wú)疑是目前為止最成功、廣泛最使用的容器引擎之一。實(shí)際上從1.12版本以后,Docker的容器化功能已經(jīng)由獨(dú)立的項(xiàng)目RunC來(lái)實(shí)現(xiàn),但Docker仍作為一個(gè)開源產(chǎn)品為用戶提供完整的容器化解決方案。此外,社區(qū)中還有許多容器引擎項(xiàng)目,例如:

  • 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

這些項(xiàng)目只是眾多支持不同平臺(tái)和具有不同特性的容器引擎的冰山一角。例如Google曾經(jīng)主導(dǎo)的lmctfy(http://lmctfy.io/)項(xiàng)目也是個(gè)十分優(yōu)秀的容器引擎,然而該項(xiàng)目自2015年以后就不再被維護(hù)了。而最近Google剛剛開源的gVisor則是該領(lǐng)域中的新秀。另外值得一說(shuō)的是,Hyper采用虛擬機(jī)的方式對(duì)環(huán)境進(jìn)行隔離,并不是一種基于容器的隔離方案,但它能很好地與Docker或Kubernetes等容器集群技術(shù)相結(jié)合,取代其環(huán)境隔離的功能,因此也歸屬此列。

2. 監(jiān)控和數(shù)據(jù)收集

由于容器基于內(nèi)核的特殊隔離方式,對(duì)容器性能和狀態(tài)的監(jiān)控與虛擬機(jī)存在一些差別。傳統(tǒng)的虛擬機(jī)監(jiān)控工具,例如Nagios和Zabbix等,對(duì)容器監(jiān)控的原生支持并不十分易用。而一些新起的開源項(xiàng)目對(duì)這種場(chǎng)景具有更友好的體驗(yàn),例如:

  • 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以后,這些工具在開源版基礎(chǔ)上提供了企業(yè)版本,后者提供了例如高可用、云端存儲(chǔ)等企業(yè)級(jí)功能。

3. 容器管理和界面工具

可視化是用戶友好性十分重要的一部分,Shipyard和Decking是Docker早期時(shí)十分受歡迎的可視化工具,之后Docker也收購(gòu)了Kitematic作為官方的容器管理UI。但隨著容器應(yīng)用集群化,早期的UI工具不再流行,一些針對(duì)特定集群平臺(tái)定制的新型管理UI開始出現(xiàn)。例如Kubernetes官方推出了Dashboard項(xiàng)目用于可視化的管理集群,Cockpit則是紅帽公司推出的Kubernetes集群管理界面。以下是其中一些開源的容器管理UI項(xiàng)目:

  • 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. 基礎(chǔ)設(shè)施集成

容器集群的實(shí)施是需要以硬件基礎(chǔ)設(shè)施作為依托的,有些輔助工具能夠簡(jiǎn)化這個(gè)過程。這些項(xiàng)目往往與具體的底層平臺(tái)相關(guān),例如:

  • 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集成容器集群的項(xiàng)目,不過目前OpenStack官方正在嘗試通過讓Kubernetes直接創(chuàng)建虛擬機(jī)的方式來(lái)統(tǒng)一它在IaaS層和CaaS層的差異,其中的Nova-docker已經(jīng)被廢棄了。Machine是Docker公司推出的基礎(chǔ)設(shè)施管理工具,Boot2Docker曾經(jīng)是在Windows和Mac上使用Docker的官方方案,但隨著Docker 1.12版本發(fā)布了多種操作系統(tǒng)的發(fā)行版后,已經(jīng)不再被推薦使用了。

5. 編排和調(diào)度

編排和調(diào)度是容器集群的基本功能,因此選擇編排和調(diào)度工具實(shí)際上就是在選擇容器集群的方案。以下是一些開源的容器任務(wù)編排調(diào)度工具:

  • 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之后的發(fā)行版,它是紅帽公司基于Kubernetes二次開發(fā)的集持續(xù)集成和交付于一體的容器集群方案,具有開源和商業(yè)兩個(gè)版本。

6. 容器鏡像倉(cāng)庫(kù)

鏡像倉(cāng)庫(kù)是基于容器的在軟件發(fā)布流程中必要的組成部分,Docker開源了其鏡像倉(cāng)庫(kù)的最小實(shí)現(xiàn),但對(duì)于企業(yè)級(jí)應(yīng)用來(lái)說(shuō),它缺少了高可用、權(quán)限控制、管理界面等必要功能。Docker Hub和國(guó)內(nèi)的許多容器云平臺(tái)都提供了公有云的企業(yè)級(jí)倉(cāng)庫(kù)服務(wù),社區(qū)中也有一些容器倉(cāng)庫(kù)的開源或免費(fèi)的實(shí)現(xiàn),例如:

  • 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是一種通用的軟件包倉(cāng)庫(kù)解決方案,支持包括Maven、NPM、PIP、RPM等許多主流打包格式的分發(fā)和管理,它是在3.0以后的版本中開始支持作為Docker鏡像倉(cāng)庫(kù)的。VMWare推出的Habor是目前相對(duì)常用的企業(yè)級(jí)開源Docker倉(cāng)庫(kù)解決方案。Portus和Docker Registry UI是基于官方Repository鏡像倉(cāng)庫(kù)的界面化管理工具。Dragonfly是一款P2P協(xié)議的鏡像分發(fā)工具,并非直接提供鏡像存儲(chǔ)功能,但也屬于倉(cāng)庫(kù)輔助類的工具。

7. 服務(wù)發(fā)現(xiàn)和容器域名服務(wù)

服務(wù)發(fā)現(xiàn)和域名服務(wù)實(shí)際上是微服務(wù)架構(gòu)和容器集群的調(diào)度工具所需的組件,它們?cè)谌萜骷褐惺殖R?,也是這個(gè)生態(tài)圈中舉足輕重的一部分,以下是其中一些在實(shí)際工程中被提及較多的工具:

  • 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. 容器日志收集處理

和容器集群的監(jiān)控一樣,收集容器中的服務(wù)運(yùn)行日志與虛擬機(jī)中的方式同樣存在許多差異。目前Docker直接通過插件能夠支持的日志收集工具包括Rsyslog、Splunk和Fluentd,雖然FileBeat不在此列,但由于其小巧便捷的部署機(jī)制,也得到了許多用戶青睞。一些過去用于虛擬機(jī)的日志收集器,比如LogStash或Flume,同樣能夠使用與容器中的服務(wù),但它們都不再是首選的方案。

  • 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四款開源項(xiàng)目的統(tǒng)稱,這是一套十分流行的日志匯聚、處理、存儲(chǔ)和展示的工具組合。其中的ElasticSearch和Kibana也可以與Fluentd配合,形成端到端日志處理方案。另外值得指出的是,Splunk并不是開源或免費(fèi)的,但它在企業(yè)級(jí)日志處理方案中的應(yīng)用十分廣泛。

9. 容器相關(guān)的系統(tǒng)發(fā)行版

有些Linux發(fā)行版是為容器運(yùn)行而優(yōu)化的,Atomic和ClearLinux系統(tǒng)都屬于此類。另一些Linux發(fā)行版在設(shè)計(jì)之初就充分地將容器機(jī)制融入了系統(tǒng)的架構(gòu)理念,例如CoreOS。有的系統(tǒng)甚至將Docker作為系統(tǒng)的核心服務(wù)來(lái)管理其他用戶進(jìn)程,例如RancherOS和Hyper容器引擎所使用的操作系統(tǒng)。類似的項(xiàng)目還有許多,它們都是架設(shè)容器集群時(shí)十分稱手的基礎(chǔ)設(shè)施,例如:

  • 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. 容器平臺(tái)

容器平臺(tái)是大規(guī)模容器運(yùn)用的產(chǎn)物,它通常會(huì)與持續(xù)集成、持續(xù)交付的工具結(jié)合,成為連接上層應(yīng)用服務(wù)和底層基礎(chǔ)設(shè)施、幫助使用者快速實(shí)現(xiàn)從代碼提交到產(chǎn)品上線全過程的端到端交付過程。以下是其中一些相關(guān)的開源項(xiàng)目:

  • 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

除了這些開源的容器平臺(tái)服務(wù)實(shí)現(xiàn)之外,互聯(lián)網(wǎng)上還有許多在線按量付費(fèi)的容器即服務(wù)平臺(tái),它們也是整個(gè)容器集群生態(tài)的一部分。

11. 容器網(wǎng)絡(luò)

容器技術(shù)在解決環(huán)境隔離和配額問題的同時(shí),也引入了網(wǎng)絡(luò)層面的復(fù)雜性。由于使用了Network Namespace,每個(gè)容器都可以獲得獨(dú)立的IP地址,這對(duì)于單個(gè)主機(jī)的情況并無(wú)大礙,但對(duì)于容器集群的情況,IP地址的分配和互聯(lián)就成為了新的問題。因此在設(shè)計(jì)容器集群時(shí),通常需要專門為網(wǎng)絡(luò)的連接方式加以考慮。常用的開源方案例如:

  • 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

這些網(wǎng)絡(luò)方案大多采用了七層網(wǎng)絡(luò)的Overlay Network方式,也就是在容器之間通信的網(wǎng)絡(luò)包上封裝了用于路由尋址的額外包頭,這種方式會(huì)導(dǎo)致網(wǎng)絡(luò)通信效率的下降,具體影響程度與所封裝的額外數(shù)據(jù)大小有關(guān)。而Calico采用修改每個(gè)主機(jī)節(jié)點(diǎn)上的IPtables和路由表規(guī)則實(shí)現(xiàn)容器間數(shù)據(jù)路由和訪問控制,屬于三層網(wǎng)絡(luò)的方式,這種方案在節(jié)點(diǎn)規(guī)模不太大(最多幾百個(gè)節(jié)點(diǎn))時(shí)的效率優(yōu)勢(shì)十分明顯,是一種比較受推薦的容器網(wǎng)絡(luò)工具。除了這些較常用的方案外,一些條件允許的企業(yè)也會(huì)結(jié)合MacVLAN等二層網(wǎng)絡(luò)方案實(shí)現(xiàn)容器的互聯(lián),以獲得更好的網(wǎng)絡(luò)性能。

12. 容器安全

容器安全性問題的根源在于容器和宿主機(jī)共用內(nèi)核,因此受攻擊的面特別大。另外,如果容器里的應(yīng)用導(dǎo)致Linux內(nèi)核崩潰,整個(gè)宿主機(jī)系統(tǒng)都會(huì)崩潰,這一點(diǎn)與虛擬機(jī)是不同的。此外,鏡像的安全性也是容器安全的一部分,如何保障用戶下載的鏡像是可信的、未被篡改過的,以及如何保證鏡像中不會(huì)意外包含具有大量漏洞的老舊軟件都是需要考慮的問題。目前這些安全課題主要在一些企業(yè)級(jí)應(yīng)用中引起較多重視,下面是一些相關(guān)的開源工具和項(xiàng)目:

  • 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. 容器數(shù)據(jù)持久化

容器是一種不可變的基礎(chǔ)設(shè)施,容器的數(shù)據(jù)應(yīng)該通過Volume的方式保存到外部的介質(zhì)上,容器持久化存儲(chǔ)本質(zhì)上就是要解決如何簡(jiǎn)便地將外部存儲(chǔ)掛載到容器中使用的問題。Docker在1.9版本后提供了存儲(chǔ)的插件,這也為許多存儲(chǔ)方案提供了便利,以下列舉幾個(gè)例子:

  • 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是通用的網(wǎng)絡(luò)存儲(chǔ)工具,同時(shí)提供塊存儲(chǔ)和對(duì)象存儲(chǔ)能力,對(duì)容器化場(chǎng)景下的應(yīng)用數(shù)據(jù)持久化具有良好的支持。

14. 容器相關(guān)開發(fā)流程工具

容器的鏡像可以被看作一種新型的應(yīng)用打包方式,因此容器常常與軟件的開發(fā)和持續(xù)集成、持續(xù)交付流程相結(jié)合,提供不同環(huán)境一致性部署能力。以下是一些利用容器改善軟件開發(fā)和交付的工具或平臺(tái):

  • 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

以上內(nèi)容節(jié)選自近期剛剛面市的新書《容器即服務(wù):從零構(gòu)建企業(yè)級(jí)容器集群》,這是一本迄今為止最完整闡述容器集群技術(shù)及其周邊生態(tài)體系的著作。其作者是來(lái)自阿里巴巴的一線技術(shù)專家,也一名從Lxc-Docker(最早的Docker 0.x版本)時(shí)期就開始在項(xiàng)目中運(yùn)用容器的一線技術(shù)咨詢師,目睹了容器技術(shù)從興起到成熟的整個(gè)過程,在一次次的技術(shù)選型和實(shí)踐里,親身經(jīng)歷各類相關(guān)開源項(xiàng)目的大坑小洼,并多次在技術(shù)大會(huì)上進(jìn)行過演講分享(比較大型的會(huì)議包括2015年的CNut全球容器技術(shù)大會(huì)、2016年的CSDN架構(gòu)技術(shù)實(shí)戰(zhàn)峰會(huì)、2017年的CNut全球運(yùn)維技術(shù)大會(huì)等)。全書分為8個(gè)章節(jié),不僅囊括當(dāng)前排名最靠前的4大主流開源容器集群方案,同時(shí)介紹了許多容器相關(guān)項(xiàng)目的技術(shù)選型和原理細(xì)節(jié),具體目錄列舉如下:

  • 第1章 容器集群綜述

  • 第2章 SwarmKit 集群解決方案

  • 第3章 Kubernetes 集群解決方案

  • 第4章 Mesos 集群解決方案

  • 第5章 Rancher 集群解決方案

  • 第6章 容器集群的網(wǎng)絡(luò)和存儲(chǔ)

  • 第7章 容器服務(wù)的基礎(chǔ)設(shè)施

  • 第8章 容器技術(shù)新風(fēng)向

學(xué)會(huì)一項(xiàng)技術(shù)很快,但學(xué)懂一門技術(shù)則需要時(shí)間的積累,做到知其然并知其所以然是一段辛苦而快樂的過程。愿《容器即服務(wù):從零構(gòu)建企業(yè)級(jí)容器集群》能夠?yàn)槟愕娜萜鲗W(xué)習(xí)之路鋪上一塊穩(wěn)固的基石。

這本書目前已經(jīng)上市,在當(dāng)當(dāng)、亞馬遜等商城均可直接購(gòu)買。同時(shí)歡迎對(duì)容器及研發(fā)效能有興趣的同學(xué)與我們聯(lián)系,阿里巴巴研發(fā)效能事業(yè)部期待你的加入,關(guān)注云效微信公眾號(hào)(ali_yunxiao)回復(fù)“招聘”加入我們。

——粉絲福利——

在企業(yè)級(jí)的容器應(yīng)用場(chǎng)景中,你有怎樣心得或者困惑,趕快微信圖文消息留言區(qū)互動(dòng)告訴我。本書作者林帆將在互動(dòng)區(qū)跟大家互動(dòng)溝通,其中點(diǎn)贊數(shù)最多的回復(fù)將獲得由作者簽名贈(zèng)送珍藏版《容器即服務(wù):從零構(gòu)建企業(yè)級(jí)容器集群》書籍一本,限2人。


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
50 易用的 Docker 工具列表匯總
推薦51個(gè)有用的Docker工具,值得收藏!
52個(gè)工具一覽表,滿足你對(duì)Docker的所有使用需求
是時(shí)候跟Docker說(shuō)再見了
51個(gè)Kubernetes工具提高工作效率,涵蓋監(jiān)控、安全、測(cè)試、開放、服務(wù)網(wǎng)格等!
Kubernetes 命令行工具推薦系列一
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服