使用 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