Develop/DevOps
[ELK] elasticsearch ECK 배포시 기본 사용자 추가 방법
재융
2024. 3. 4. 16:10
반응형
해당 글을 작성하는 이유는?
- elasticsearch를 ECK방식으로 배포를 했었는데, 매번 배포할때마다 elastic 유저의 패스워드가 바뀌어서 배포때마다 filebeat에 바뀐 패스워드를 반영해줘야하는 번거로움이 존재했다.
- 따라서, 위와같은 귀찮은일을 안하기 위해 비밀번호가 고정적이며 + superuser권한을 갖는 계정을 생성해서 배포때 반영하도록 했다.
아래는 작업한 내용이다. 참고로 기존 클러스터 환경에는 elasticsearch 관련 CRD가 배포되어있다는 가정하에 작성한다.
먼저 생성하고 싶은 계정 정보를 Secret에 기입 및 생성을 한다.
1 2 3 4 5 6 7 8 9 10 | apiVersion: v1 kind: Secret metadata: name: secret-basic-auth namespace: elastic-system type: kubernetes.io/basic-auth stringData: username: test # required field for kubernetes.io/basic-auth password: changeme # required field for kubernetes.io/basic-auth roles: superuser # optional, not part of kubernetes.io/basic-auth |
그다음에 elastic.yaml파일에 위에서 생성한 secret을 포함되게끔 반영한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: elasticsearch namespace: elastic-system spec: version: 8.11.3 volumeClaimDeletePolicy: DeleteOnScaledownOnly auth: fileRealm: - secretName: secret-basic-auth http: service: spec: type: NodePort ports: - nodePort: 30029 port: 9200 name: https nodeSets: - name: master count: 1 config: node.store.allow_mmap: false xpack.monitoring.collection.enabled: true node.roles: ["master"] podTemplate: #...생략 |
이후 반영이 되었는지 elasticsearch에 curl 명령어를 날려서 확인해본다
curl -u "test:changeme" -k "https://192.168.4.31:30029"
```
{
"name" : "elasticsearch-es-data-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "",
"version" : {
"number" : "8.11.3",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "64cf052f3b56b1fd4449f5454cb88aca7e739d9a",
"build_date" : "2023-12-08T11:33:53.634979452Z",
"build_snapshot" : false,
"lucene_version" : "9.8.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
```
반응형