首頁 > 軟體

Kubernetes上的十大應用程式

2020-06-16 16:44:00

在嶄新的Kubernetes叢集上,經常會安裝的helm chart都有哪些呢?下面這個清單代表了我們的觀點。

序號

名稱

理由

1

nginx-ingress

世界上最常見的前端代理,非常易於搭建,功能具有通用性。根據場景的不同,可能會有更好的Ingress,但是它的份額佔到了99%。

2

coredns

Kubernetes上最好的DNS伺服器。預設的KubeDNS比較糟糕,所以毫無疑問你需要將它切換掉。借助coredns你還可以啟用一些很酷的外掛,使其能夠與其他的應用程式共同作業,比如Prometheus。

3

Prometheus

每個人都應該使用Prometheus,它提供了自定義的時序監控功能,允許你instrument程式碼並在Grafana中以圖形化的方式進行監視。你還可以搭建告警功能,當生產環境崩潰或延遲讓顧客感到不滿時,你能得到提醒。它同時還需要Grafana和kube-state-metrics chart。

4

Istio

通過Istio服務網格連線微服務能夠解鎖大量很酷的特性,包括流量控制、認證與授權、加密和可觀察性。你可以移除微服務中大量的應用程式邏輯,讓Istio來處理它。

5

Nuclio

Nuclio是我們目前最喜歡的FaaS應用,它為實時和資料驅動應用提供了Serverless Function,與AWS Lambda的處理方式相同,只不過是在你的叢集中執行。

6

Jaeger

為你的應用提供分散式跟蹤功能,它能夠跟蹤每個微服務的每次API呼叫。我們都知道,微服務最大的問題就是可觀察性。在解決這個問題方面,我們走過了很長的道路。

7

Fluentd

捕獲紀錄檔並將其傳送至ElasticSearch,這樣我們就可以通過搜尋錯誤紀錄檔判斷微服務中出現了什麼問題。在使用它的時候,還需要Kibana chart。

8

Anchore

如今,誰的應用會不關注安全性呢。我們需要它來捕獲安全漏洞並與CI/CD管道進行整合。

9

Jenkins

為容器提供CI/CD功能。幾乎每個人都在執行它,不過喜歡它的人似乎並不多,但是它非常流行,在安裝Gitlab之前,它是預設的方案。

10

NATS

一個非常酷的PubSub訊息系統,因為並非所有的內部通訊都需要通過API,它還有一些很酷的流特性。

將我們最喜歡的應用限制在10個確實非常困難。除此之外,還有一些非常棒的應用程式並沒有能夠包含進來。我們最終優先考慮的是核心功能的升級以及為開發人員所帶來的幫助。

Ark

Heptio Ark是一個用來管理災難恢復的工具,尤其適用於Kubernetes叢集資源和持久化卷。

其實,沒有人願意編寫備份和恢復指令碼。我們推薦你了解一下這個應用,它可以為你解決這些問題。

Gitlab

可以說,Gitlab比Jenkins更好,應該取代它出現在列表中。但是,我們不能忽視一個事實就是幾乎每個人都在執行Jenkins,所以這一次我們將票投給了流行度。

Traefik和Ambassador

另外一個有爭議性的就是在列表中排名第一的nginx-ingress。很多人可能會說“我希望將nginx換成TraefikAmbassador”。

這次,我們站在了新人和流行度這一邊。隨著時間的推移,會有更多高階使用者最終放棄nginx-ingress,轉而研究這兩個可選方案。

external-dns

我們在大多數叢集上都執行external-dns,它自動管理我們外部DNS記錄的更新。

相對於列表中的其他條目,它並沒有提供太多的功能,但有時候你可能還是需要安裝它,以避免手動設定。

Magic Namespace

Magic Namespace是用來管理namespace之間安全性的helm chart。如果你執行多租戶叢集的話,毫無疑問你將會遇到這方面的問題。

chaoskube

每個人都喜歡混亂的monkey測試(chaos monkey)。

但是我們不能一開始就告訴人們安裝一個chart,讓它任意地殺死叢集中的pod。如果有人足夠自信,能夠忍受混沌過程的考驗,那麼Chaoskube就是為他們準備的。

Kubernetes Dashboard和kube-ops-view

這些儀表盤應用並沒有包含在列表中。如果你喜歡使用漂亮的UI介面來展現叢集狀態的話,那麼kube-ops-view非常棒。如果你更喜歡點選按鈕的操作方式的話,那麼Kubernetes Dashboard可能更適合你。

cert manager

cert-manager是一個Kubernetes應用程式,用於自動化管理和發佈來自不同發行源的TLS證書。

如果你已經厭倦了圍繞像LetsEncrypt之類的服務建立自定義自動化功能,那麼可以了解一下cert manager

Envoy

這個有點悲劇色彩,Envoy是非常棒的edge和服務代理,但是沒有人會以helm chart的形式來使用它。它會打包到某個chart中,比如前十列表中的Istio。我在這裡將它列出來,也是某種程度上為它伸張正義。

Spinnaker

Spinnaker是非常流行的CI/CD平台,它是由Netflix開源的。它未能躋身前十,是因為它有些複雜。它需要不少規劃工作才能搭建起來,此外,它是可設定的,很多內容都是圍繞Terraform完成的。如果你的團隊有不少人,應用非常複雜,需要一個強大的方案來替代通過各種hacked手段連線在一起的Jenkins job的話,那麼可以了解一下Spinnaker。

Kong

如果你要暴露API給外部世界的話(執行Kubernetes的場景下基本都會這樣做),那麼你應該了解一下Kong,它是一個API閘道器,能夠幫助我們管理很多標準的功能,比如認證、路由、紀錄檔等等。它還有一個外掛系統,借助該系統能夠為其擴充套件一些非常棒的特性。

本文最初發表於kubedex,經該網站授權由InfoQ中文站翻譯分享。


IT145.com E-mail:sddin#qq.com