Elastic FAQ|Should we use Elastic in Kubernetes Cluster

瀏覽人次: 1214
2021-11-04 更新

elk、elasticsearch、logstash、kibana,常見的 FAQ 相關問題。

今年筆者在進行 ELK 相關專案發現,越來越多客戶詢問是否能用 K8S
的方式,感覺對效能的相關問題是比較好的。雖然筆者也有在使用容器,但並不是 K8S
或容器技術的專家,也在學習中,不過對於一些基本的概念應用,也是略懂一二。

首先 ELK 採容器化部署是沒有問題的,透過 helm
的方式也能很快速的部署服務。但這類的問題,其實背後有很多的問題衍生,比如:公司是否具有此能力的技術人員?已有現成的
k8s cluster 架構可直接部署?有考量未來的維運成本?對 ELK
的了解是否有足夠的知識,可以應付在容器中發生的錯誤?
k8s cluster 只是其中一種 ELK
的部署方式,千萬不要為了容器化而容器化,反而提高維運成本。

其實較大的錯誤認知是,認爲容器技術可以有效的解決效能問題,甚至是認為這樣在管理上相對容易,其中,效能問題筆者認爲是沒有直接關係的,可以先參考我們的文章,了解一下基本需要校調的參數。而在 Server
上需要做的校調,不會因爲容器化而完全不需要,甚至需要以容器的做法去實踐。

而影響效能的原因,往往不會是單一的,有可能是設備資源、硬碟、shard/replica、hot/warn
node 配置、index
等等。當然如果公司有足夠的預算,用最直接且粗爆的方式,將硬體資源往上拉,那也不失是一個辦法,但如果是在有限的硬體資源中,想要達到最大
CP 值的話,那就需要經驗及對 ELK 對了解了,當然也歡迎找我們
咨詢討論

對容器的管理面來說,以筆者的經驗來分享,這是需要門檻的,而且是需要你對 k8s
有相當程度的了解,及實務經驗。
筆者認為,至少必需可以手動架設 cluster,並了解 cluster
中的運作及溝通方式。了解 k8s 的部署方式,如何去撰寫
yaml,有哪些設定方式,要用 deployment 還是 statefulset,什麼是 service
什麼是 ingress,甚至在 apply 之前,有哪些前置作業。還得知道如何管理
pod、pv、pvc、service ......等等,這些服務的特性是什麼,比如 pvc
是不會因為移除 statefulset
而一併移除,必需手動移除。當然必需要強調筆者並不是此領域的專家,主要是想表達
k8s 需要花不少時間去學習的技術,水非常的深,所以千萬不要只為了 ES
而去架了一套 k8s cluster,實務上可能都分不清現在是 k8s 的問題,還是 es
的錯誤,還是 server 的配置不對。

對於容器技術筆者也認為,除非您是專家,否則盡量是以純 API
的微服務為主,也聽過一些專家建議,容器並不太適合套用於一些具有狀態性的服務,雖然隨著近幾年來
k8s
的技術也不斷在進步,對於狀態性服務的支援程度也不在話下,但在管理上,筆者以目前的認知及能力還是認為,管理微服務還是相對單純,不用擔心資料
persistence 的問題。


快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。