Elastic 官方提供了 QuickStart 让我们简单快速的在本地部署 ElasticSearch,基于 Kubernetes Operator 模式,自动化的部署应用。
当前验证版本:
- ECK 2.6
- Mac Docker Desktop 4.15.0
- Docker Engine: 20.10.21
- Kubernetes: 1.25.2
部署ECK
安装 CRD(custom resource definitions)
1
| kubectl create -f https://download.elastic.co/downloads/eck/2.6.1/crds.yaml
|
安装 Operator
1
| kubectl apply -f https://download.elastic.co/downloads/eck/2.6.1/operator.yaml
|
监控 Operator 日志
1
| kubectl -n elastic-system logs -f statefulset.apps/elastic-operator
|
部署 ElasticSearch
1
2
3
4
5
6
7
8
9
10
11
12
13
| cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 8.6.0
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
EOF
|
查看集群状态
1
| kubectl get elasticsearch
|
查看 pod
1
| kubectl get pods --selector='elasticsearch.k8s.elastic.co/cluster-name=quickstart'
|
外部访问
生成密码
1
| PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o go-template='{{.data.elastic | base64decode}}')
|
映射外部访问
1
| kubectl port-forward service/quickstart-es-http 9200
|
验证
1
| curl -u "elastic:$PASSWORD" -k "https://localhost:9200"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| {
"name" : "quickstart-es-default-0",
"cluster_name" : "quickstart",
"cluster_uuid" : "PFBJFEyTSPyoF7-kMTYw0g",
"version" : {
"number" : "8.6.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "f67ef2df40237445caa70e2fef79471cc608d70d",
"build_date" : "2023-01-04T09:35:21.782467981Z",
"build_snapshot" : false,
"lucene_version" : "9.4.2",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
|
部署 Kibana
1
2
3
4
5
6
7
8
9
10
11
| cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: quickstart
spec:
version: 8.6.0
count: 1
elasticsearchRef:
name: quickstart
EOF
|
查看集群信息
关联 ElasticSearch 实例
1
| kubectl get pod --selector='kibana.k8s.elastic.co/name=quickstart'
|
访问 Kibana
查看服务状态
1
| kubectl get service quickstart-kb-http
|
本地端口映射
1
| kubectl port-forward service/quickstart-kb-http 5601
|
生成密码
1
| kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
|
验证
访问 https://localhost:5601 elastic/密码 查看