본문 바로가기

Data/MLOps

[ELK] elasticsearch ECK 배포시 기본 사용자 추가 방법

반응형

해당 글을 작성하는 이유는?

- 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"
}
```

 

반응형