前提:
在kubernetes集群中部署elk組件,es集群部署3個節點,kibana部署一個,容器數據持久化需要storageclass
依賴:
1.准備配置
git clone https://github.com/elastic/helm-charts.git
2. 部署 ES
2.1創建elk命名空間
# cat elk-ns.yml
apiVersion: v1
kind: Namespace
metadata:
name: elk
2.2部署elasticsearch
cd helm-charts/elasticsearch helm install --namespace=elk --name=elasticsearch .
3. 部署 Kibana
cd helm-charts/kibana helm install --namespace=elk --name=kibana .
通過 kubectl get deploy 和 pod 了解部署狀態;
小知識
Kibana 直接通過 K8S 內部 DNS 域名 訪問 ES。
查看容器內的配置
# kubectl exec kibana-kibana-7cbc5db55c-6qct7 -c kibana -- cat /usr/share/kibana/config/kibana.yml # Default Kibana configuration for docker target server.name: kibana server.host: "0" elasticsearch.hosts: [ "http://elasticsearch:9200" ] xpack.monitoring.ui.container.elasticsearch.enabled: true
3. 訪問測試
3.1 給 Kibana 添加 Ingress
通過 Ingress 添加訪問入口
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: kibana namespace: default spec: rules: - host: <YourDomain> ## 訪問 Kibana 的域名 http: paths: - backend: serviceName: kibana-kibana servicePort: 5601 path: / status: loadBalancer: ingress: - ip: <YourLoadBalancerIP> ## LB 的 IP
3.2 訪問測試
訪問域名,即可打開 Kibana 7.3 版本;
查看集群的運行狀態
也可以通過命令行查看
~$ curl -s <YourESHost>/_cluster/health | jq . { "cluster_name": "elasticsearch", "status": "yellow", "timed_out": false, "number_of_nodes": 3, "number_of_data_nodes": 3, "active_primary_shards": 19, "active_shards": 35, "relocating_shards": 0, "initializing_shards": 0, "unassigned_shards": 3, "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis": 0, "active_shards_percent_as_number": 92.10526315789474 }