K8S通过helm 部署 ELK 7.3
前提:
在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 }