【Kubernetes】使用 Helm 在 k8s 上安裝 Elastic Stack:Elasticsearch 與 Kibana

white and brown galleon ship

使用 Helm 在 Kubernetes上安裝 Elastic Stack,包含兩個重要的套件:Elasticsearch 與 Kibana。參考資料: https://github.com/elastic/helm-charts

安裝 Elasticsearch

我們首先需要添加 elastic 的 helm repo 到本地的 helm 環境中,然後使用 helm 安裝 Elasticsearch

helm repo add elastic https://helm.elastic.co
helm upgrade --install elasticsearch elastic/elasticsearch

檢查健康狀態 Check Health

為了確保 Elasticsearch 正確運行,可以使用以下命令檢查其健康狀態:

helm --namespace=default test elasticsearch

檢查完成後,您應該會看到類似以下圖像的畫面:


應該顯示 Phase: succeeded

安裝 Kibana

接下來,我們將安裝 Kibana 以便於 Elasticsearch 的視覺化操作。首先執行以下命令進行安裝:

helm install kibana elastic/kibana

安裝完成後,需要查看 Kibana Pod 的名稱

kubectl get pods

然後,將 Kibana Pod 的名稱指定給環境變數 KIBANA_POD_NAME:

export KIBANA_POD_NAME=kibana-kibana-8446b87c9f-88ghj 

記得把 “kibana-kibana-8446b87c9f-88ghj” 替換為您實際的 Kibana Pod 名稱。

kubectl port-forward $KIBANA_POD_NAME 30456:5601 --address '0.0.0.0'

取得 elasticsearch 的密碼

預設情況下,Elasticsearch 的帳號為 elastic,可以通過以下指令確認這一點:

kubectl get secrets --namespace=default elasticsearch-master-credentials -ojsonpath='{.data.username}' | base64 -d

密碼則透過以下指令取得:

kubectl get secrets --namespace=default elasticsearch-master-credentials -ojsonpath='{.data.password}' | base64 -d

瀏覽器瀏覽 Kibana

到瀏覽器打上 [your machine’s ip]:30456

  • username: elastic
  • password: 上面 kubectl get secrets 得到的密碼

成功登入!

好用的指令

如果沒辦法成功安裝Kibana,想重新安裝常常卡關,可以先用以下指令清理。

  • 在安裝/刪除 Kibana 時,會有 pre/post-install/delete 的 pod 在執行,如果failed的話會卡住噴Error,可先用 delete pods 把那些失敗的 pods 刪掉。
  • 另外重新安裝時,也會因為有已經存在的confimap, serviceaccount等而失敗,所以用 kubectl delete configmap 等等指令來把他們清
kubectl delete pods --field-selector status.phase=Failed

kubectl delete configmap kibana-kibana-helm-scripts
kubectl delete serviceaccount pre-install-kibana-kibana
kubectl delete roles pre-install-kibana-kibana
kubectl delete rolebindings pre-install-kibana-kibana
kubectl delete jobs pre-install-kibana-kibana

kubectl delete serviceaccount post-delete-kibana-kibana
kubectl delete roles post-delete-kibana-kibana
kubectl delete rolebindings post-delete-kibana-kibana
kubectl delete jobs post-delete-kibana-kibana

留言討論區