技術基礎 | 有關K8ssandra的那些事兒

 若是你對K8ssandra還感到比較陌生,這篇FAQ正是爲你準備的git

不管你是在哪兒看到的這篇文章(不管Github仍是官方文檔),你均可以向咱們提出新的問題或對文章中提到的問題作出修正。做爲一個開源項目,K8ssandra的用戶社區是很歡迎各式各樣的貢獻的。github


01 什麼是K8ssandra?

K8ssandra是一個開源項目,這意味着社區中的每一個人均可以使用、改進和享受這個項目。K8ssandra是運行在Kubernetes上的雲原生的Apache Cassandra®發行版本。瀏覽器

與Cassandra一塊兒包括在K8ssandra裏的,還有一整套能使運維任務更加簡單和自動化的工具,好比監測指標、反熵修復服務(anti-entropy services)以及備份恢復工具等。全部這些組件都會在K8ssandra安裝過程當中一同被安裝並鏈接在一塊兒,這樣你的團隊就不用再作那些冗雜的組件裝配工做了。網絡

 

02 好,那我應該怎麼讀「K8ssandra」?

你怎樣讀其實均可以,不過你能夠考慮這種讀法:「Kate」 + 「Sandra」。架構

 

03 K8ssandra包括了什麼呢?

從一個純組件的層面來看,K8ssandra將如下工具集成打包在了一塊兒:負載均衡

  • Apache Cassandra 3.11.7
  • 用於Apache Cassandra的Kubernetes Operator (cass-operator)
  • Reaper,也被稱做Repair Web Interface
  • 用於備份恢復的Medusa
  • 集成了Prometheus的指標收集器(Metrics Collector),並經過預配置的Grafana監控圖表提供可視化功能
  • 經過像是Traefik這樣的Ingress解決方案給出的針對你的Kubernetes環境的鏈接模板

下面的示例圖能夠幫助你更好地理解:運維

除了以上這些組件,咱們必須強調K8ssandra其實是一個Cassandra+Kubernetes這兩個用戶社區的體驗的集合。它將你們所需的一切打包,並讓全部人自由使用。ide

 

04 我應該從何開始並如何安裝K8ssandra?

這很是容易!你有幾種選擇能夠安裝K8ssandra,不過咱們建議使用Helm命令行。微服務

helm repo add k8ssandra https://helm.k8ssandra.io/
helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install k8ssandra-tools k8ssandra/k8ssandra
helm install k8ssandra-cluster-a k8ssandra/k8ssandra-cluster

想要查看更多選擇?請點擊這裏瞭解如何快速開始使用K8ssandra:工具

 

05 k8ssandra和k8ssandra-cluster實際上到底安裝了什麼東西?

參考前面的問題中提到的Helm命令行:

  • k8ssandra安裝了用於Apache Cassandra的Kubernetes Operator (cass-operator),和Prometheus Operator。
  • k8ssandra-cluster安裝了K8ssandra技術棧的實例:用於修復的reaper、用於備份恢復的medusa、Grafana Operator以及其它的實例。

安裝了這些以後,全部的Kubernetes的pod都處於Ready(準備好)的狀態,經過kubectl get pods你能夠看到相似的輸出:

NAME                                                              READY   STATUS      RESTARTS   AGE
cass-operator-65956c4f6d-f25nl                                    1/1     Running     0          10m
grafana-deployment-8467d8bc9d-czsg5                               1/1     Running     0          6m23s
k8ssandra-cluster-a-grafana-operator-k8ssandra-5bcb746b8d-4nlhz   1/1     Running     0          6m20s
k8ssandra-cluster-a-reaper-k8ssandra-6cf5b87b8f-vxrwj             1/1     Running     6          6m20s
k8ssandra-cluster-a-reaper-k8ssandra-schema-pjmv8                 0/1     Completed   5          6m20s
k8ssandra-cluster-a-reaper-operator-k8ssandra-55dc486998-f4r46    1/1     Running     2          6m20s
k8ssandra-dc1-default-sts-0                                       2/2     Running     0          10m
k8ssandra-tools-kube-prome-operator-6d57f758dd-7zd92              1/1     Running     0          10m
prometheus-k8ssandra-cluster-a-prometheus-k8ssandra-0             2/2     Running     1          10m

 

06 k8ssandra和k8ssandra-cluster須要被安裝在某個特定的命名空間(namespace)中嗎?

這兩個chart均可以被安裝在任意命名空間,不只如此,它們還能夠被安裝在不一樣的命名空間。下面的示例代碼展現了這點:

# Install k8ssandra-tool in the k8ssandra namespace
$ helm install k8ssandra-tools k8ssandra/k8ssandra -n k8ssandra --create-namespace

# Install k8ssandra in the k8ssandra-dev namespace
$ helm install dev-cluster k8ssandra/k8ssandra-cluster -n k8ssandra-dev --create-namespace

 

07 我能夠安裝多個k8ssandra的發行版本嗎?

因爲k8ssandra chart所安裝的各類對象目前都是基於kubernetes集羣範圍所配置的,因此你應該只能安裝一個版本。

 

08 我能夠安裝多個k8ssandra-cluster的發行版本嗎?

能夠,你能夠安裝多個k8ssandra-cluster的發行版本。由於grafana-operator的一個已知的issue,每個發行版本應該被安裝在不一樣的命名空間下。

 

09 什麼是cass-operator?

用於Apache Cassandra的Kubernetes Operator——即cass-operator——是聯結Kubernetes和Cassandra的最關鍵的組件。

在過去的兩年多,社區一直把主要的精力首先放在Cassandra的operators上。cass-operator在Kubernetes的控制平面和Cassandra集羣的實際操做之間提供一個轉換層。

最近,Apache Cassandra項目對使用同一種operator達成了一致——這個operator就是cass-operator。Orange公司開發的CassKop operator中有一些很是好的貢獻,這些都將會被合併到DataStax的operator中,而最終的版本會被合併到Apache項目中。

這是實際生產中的知識經驗又轉化成代碼的最佳例子。對cass-operator有所貢獻的社區成員天天都在Kubernetes上大量運行着Cassandra。

 

10 K8ssandra經過cass-operator安裝和管理的是什麼版本的Cassandra?

目前是Apache Cassandra 3.11.7。

 

11 什麼是Reaper?

Reaper是在Cassandra集羣中用於管理反熵修復(anti-entropy repair)重要的維護任務的工具。咱們也將Reaper叫作Repair Web Interface(修復功能的網絡交互界面)。Reaper最初是由Spotify構建的,以後由The Last Pickle接手維護。

若是你要在一羣Cassandra DBA中坐下來和他們談論他們所作的事,他們極可能談不少的就是運行修復功能。這是運維中很是重要的部分,由於它讓數據保持一致性,即便是出現像是節點故障或網絡分裂(network partition)這樣的不可避免的問題。

在K8ssandra中,Reaper是自動運行的。因爲Reaper是爲網站可靠性工程師們(SREs)建構的,它包括了一組很好的預製監測指標,以便工程師們驗證一切都運行良好。

 

12 什麼是Medusa?

Medusa爲Cassandra的數據提供備份恢復功能。這個項目最初也是由Spotify發起的。Medusa不只幫助協調備份恢復任務,還會管理數據的存儲位置。

Medusa的初始版本會將備份數據存儲在像是AWS S3 buckets這樣雲對象數據存儲(cloud object storage)中,更多的配置選項也已經在開發中。K8ssandra提供了這個備份恢復功能,幫助你在不可避免的現實問題發生之時可以找回Cassandra數據。

 

13 我如何能從Kubernetes集羣以外的環境中訪問Kubernetes集羣上運行的資源?

K8ssandra提供預配置的Traefik Ingress集成。

Traefik是一個現代的反向代理和負載均衡器,它能簡化微服務的部署過程。Traefik與你已有的基礎架構組件相集成,而且能自動且動態地進行自我配置。Traefik負責進階的ingress部署,包括含有SNI的TCP和UDP的mTLS。

Operator經過Kubernetes Ingress對象或更具體的自定義資源的定義(Custom Resource Definitions)來定義去往下游系統的流量路由的規則。K8ssandra支持部署IngressRoute對象,用於監測指標、修復和Cassandra交互界面。欲瞭解更多信息,請搜索Traefik相關信息。

 

14 我如何才能監控Kubernetes + Cassandra集羣的健康情況?

配置Traefik從而暴露出K8ssandra的監控交互界面。

文檔中的Topics→Ingress→Traefik→Monitoring章節提供了開啓Traefik Ingress的詳細步驟,而Topics→Accessing Services→Monitoring UI章節則提供了關於使用K8ssandra提供的預配置Grafana監控圖表的細節。

完成準備步驟以後,假設是在你的本機環境,你能夠在你的瀏覽器中打開

 

15 用於Grafana監控圖表的登陸信息是什麼?

Grafana默認配置中,用戶名是admin,密碼是secret

文檔中的Topics→Accessing Services→Monitoring UI章節的Grafana credentials小節有更多詳細信息。

 

16 我能夠用K8ssandra完成哪些生成(provisioning)任務?

集羣的動態擴容或縮容。文檔中的Topics→Provision a Cluster章節提供了更多的相關信息。

 

17 你能演示一下使用K8ssandra的步驟和示例命令嗎?

好的——下圖中你能夠看到這些信息:

 

18 我怎麼才能爲K8ssandra的文檔作貢獻?

點擊下方查看文檔,其中Contribution Guidelines章節提供了更多的相關信息。


下一步

點擊下方查看文檔,並積極參與到K8ssandra用戶社區中來。

相關文章
相關標籤/搜索