본문 바로가기
서버구축 (WEB,DB)

Kubernetes 환경에 Elasticsearch, Kibana 및 기타 Elastic 제품 구성

by 날으는물고기 2023. 12. 2.

Kubernetes 환경에 Elasticsearch, Kibana 및 기타 Elastic 제품 구성

Elasticsearch, Kibana 및 기타 Elastic 제품을 관리하기 위한 Elastic Cloud on Kubernetes (ECK)를 설치하는 과정을 안내합니다. 아래는 주요 단계들을 정리한 것입니다.

전제 조건

  • Kubernetes 클러스터가 이미 실행 중이어야 합니다.
  • ECK 설치 전에 지원되는 버전을 확인하세요.
  • GKE를 사용하는 경우 사용자가 cluster-admin 권한을 가지고 있어야 합니다.
  • Amazon EKS를 사용하는 경우 Kubernetes 제어 평면이 포트 443에서 Kubernetes 노드와 통신할 수 있도록 허용되어야 합니다.

 

Custom Resource Definitions(CRDs) 설치:Elastic 관련 CRDs가 생성됩니다.

kubectl create -f https://download.elastic.co/downloads/eck/2.10.0/crds.yaml

다음과 같은 Elastic 리소스가 생성되었습니다.

customresourcedefinition.apiextensions.k8s.io/agents.agent.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/apmservers.apm.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/beats.beat.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/elasticmapsservers.maps.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/elasticsearches.elasticsearch.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/enterprisesearches.enterprisesearch.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/kibanas.kibana.k8s.elastic.co created
customresourcedefinition.apiextensions.k8s.io/logstashes.logstash.k8s.elastic.co created

 

Operator 및 RBAC 규칙 설치:ECK Operator와 관련 RBAC 규칙이 설치됩니다. 기본적으로 ECK Operator는 elastic-system 네임스페이스에서 실행됩니다. 작업 부하에 대한 전용 네임스페이스를 선택하는 것이 좋습니다.

kubectl apply -f https://download.elastic.co/downloads/eck/2.10.0/operator.yaml

 

Operator 로그 모니터링:Operator의 로그를 실시간으로 모니터링할 수 있습니다.

kubectl -n elastic-system logs -f statefulset.apps/elastic-operator

이제 ECK가 Kubernetes 클러스터에 배포되었습니다. 추가 Elastic 제품을 배포하려면 해당 제품에 대한 Elastic Custom Resource(예: Elasticsearch, Kibana)를 생성하면 됩니다. 자세한 내용은 Elastic 공식 문서를 참조하세요.

Elasticsearch 클러스터 배포

  1. Elasticsearch Custom Resource 적용
    cat <<EOF | kubectl apply -f -
    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: quickstart
    spec:
      version: 8.11.1
      nodeSets:
      - name: default
        count: 1
        config:
          node.store.allow_mmap: false
    EOF
    ECK Operator는 Elasticsearch 클러스터의 원하는 상태를 달성하기 위해 Kubernetes 리소스를 자동으로 생성하고 관리합니다. 클러스터가 사용 가능하도록 모든 리소스가 생성될 때까지 몇 분이 걸릴 수 있습니다.
  2. 클러스터 상태 및 생성 진행 모니터링
    kubectl get pods --selector='elasticsearch.k8s.elastic.co/cluster-name=quickstart'
    현재 Kubernetes 클러스터에 있는 Elasticsearch 클러스터의 개요를 확인합니다. HEALTH, 버전 및 노드 수가 표시됩니다.
    kubectl get elasticsearch
    클러스터를 생성하면 HEALTH 상태가 없고 PHASE는 비어 있습니다. 시간이 지나면 PHASE가 Ready로 변하고 HEALTH가 초록색이 됩니다.
  3. 클러스터 엑세스 및 로그 확인
    kubectl logs -f quickstart-es-default-0
    클러스터 내의 Pod의 로그를 확인할 수 있습니다.
  4. Elasticsearch 엑세스 요청
    kubectl get service quickstart-es-http
    클러스터용 ClusterIP 서비스가 자동으로 생성됩니다. 이 서비스를 통해 Elasticsearch에 액세스할 수 있습니다.
    PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o go-template='{{.data.elastic | base64decode}}')
    클러스터에 대한 인증 정보를 가져옵니다.
    curl -u "elastic:$PASSWORD" -k "https://quickstart-es-http:9200"
    또는 로컬 워크스테이션에서:
    kubectl port-forward service/quickstart-es-http 9200
    그리고 다른 터미널에서:
    curl -u "elastic:$PASSWORD" -k "https://localhost:9200"
    주의: -k 플래그를 사용하여 인증서 확인을 비활성화하는 것은 권장되지 않으며 테스트 목적으로만 사용해야 합니다. 응답으로 Elasticsearch 클러스터의 정보가 출력됩니다.

이제 Elasticsearch 클러스터가 배포되었고, 해당 클러스터에 대한 상태 및 엑세스가 가능합니다.

Kibana 인스턴스 배포

  1. Kibana Custom Resource 지정
    cat <<EOF | kubectl apply -f -
    apiVersion: kibana.k8s.elastic.co/v1
    kind: Kibana
    metadata:
      name: quickstart
    spec:
      version: 8.11.1
      count: 1
      elasticsearchRef:
        name: quickstart
    EOF
    이로써 Kibana 인스턴스가 Elasticsearch 클러스터와 연결되었습니다.
  2. Kibana 상태 및 생성 진행 모니터링
    kubectl get kibana
    Kibana 인스턴스에 대한 상세 정보를 확인할 수 있습니다.
    kubectl get pod --selector='kibana.k8s.elastic.co/name=quickstart'
    연관된 Pods에 대한 정보를 확인할 수 있습니다.
  3. Kibana 엑세스
    kubectl get service quickstart-kb-http
    Kibana를 위한 ClusterIP 서비스가 자동으로 생성됩니다.
    kubectl port-forward service/quickstart-kb-http 5601
    로컬 워크스테이션에서 Kibana에 액세스하기 위해 kubectl port-forward를 사용합니다.
  4. 브라우저에서 Kibana 열기
    브라우저에서 https://localhost:5601을 열어주세요. 브라우저는 자체 서명된 인증서가 알려진 인증 기관에 의해 확인되지 않아 신뢰할 수 없다는 경고를 표시할 것입니다. 이 퀵스타트의 목적을 위해 경고를 일시적으로 수락할 수 있지만, 프로덕션 배포에서는 유효한 인증서를 구성하는 것이 매우 권장됩니다.
  5. elastic 사용자로 로그인
    아래 명령을 사용하여 elastic 사용자로 로그인할 수 있는 패스워드를 가져옵니다.
    kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
    받은 패스워드로 Kibana에 로그인합니다.

이제 Kibana 인스턴스가 배포되었고, 해당 인스턴스에 대한 상태 및 엑세스가 가능합니다.

클러스터 업그레이드

  1. Elasticsearch 노드 수 늘리기
    cat <<EOF | kubectl apply -f -
    apiVersion: elasticsearch.k8s.elastic.co/v1
    kind: Elasticsearch
    metadata:
      name: quickstart
    spec:
      version: 8.11.1
      nodeSets:
      - name: default
        count: 3
        config:
          node.store.allow_mmap: false
    EOF
    Elasticsearch 노드 수를 3개로 늘리는 클러스터 업그레이드를 수행합니다.
    참고: 클러스터 변경 내용이 기존 Kubernetes 리소스의 유효한 변환으로 전환되어야 합니다. 예를 들어 기존 볼륨 클레임은 축소될 수 없습니다. Operator는 기존 클러스터에 최소한의 중단으로 변경 사항을 적용하려고 노력합니다. 변경을 수용하기 위해 Kubernetes 클러스터에 충분한 리소스(추가 저장 공간, 일시적으로 새로운 파드를 실행하는 데 필요한 충분한 메모리 및 CPU 리소스 등)가 있는지 확인해야 합니다.

이제 Elasticsearch 클러스터가 새로운 구성으로 업그레이드되었습니다. 추가로 변경사항이나 클러스터 구성에 대한 업그레이드는 필요에 따라서 위와 유사한 방식으로 수행할 수 있습니다.

영속적인 스토리지 사용

가이드에서 배포한 클러스터는 기본 스토리지 클래스를 사용하여 1GiB의 영속적인 볼륨을 할당합니다. 그러나 프로덕션 환경에서는 이러한 스토리지의 크기와 속성을 더 정확하게 제어하고 싶을 수 있습니다. 이를 위해 "Volume claim templates"를 참조하시기 바랍니다.

 

프로덕션 환경에서는 클러스터의 스토리지 구성을 더 세부적으로 조정해야 할 수 있습니다. "Volume claim templates"에서 제공하는 정보를 참고하여 클러스터의 스토리지에 대한 사용자 지정 설정을 수행할 수 있습니다. 이를 통해 보다 효율적이고 안정적인 스토리지 구성을 달성할 수 있습니다.

 

프로젝트 저장소에서 일련의 샘플 리소스를 찾을 수 있습니다.

 

각 CustomResourceDefinition (CRD)에 대한 자세한 설명은 API 참조에서 확인하거나 프로젝트 저장소의 CRD 파일을 참조할 수 있습니다. 또한 클러스터에서 CRD에 관한 정보를 검색할 수도 있습니다. 예를 들어 Elasticsearch CRD 사양을 확인하려면 다음과 같이 실행합니다:

kubectl describe crd elasticsearch

이 명령은 Elasticsearch CRD에 대한 자세한 정보를 출력합니다. 프로젝트에서 정의된 Elasticsearch 리소스의 구조 및 설정에 대한 통찰력을 얻는 데 유용할 수 있습니다. 이를 통해 Elasticsearch 클러스터를 관리하기 위한 최적의 구성을 확인할 수 있습니다.

APM Server 배포

ECK로 관리되는 Elasticsearch 클러스터를 사용하여 APM Server와 Elasticsearch 간의 원활하고 보안된 통합을 달성할 수 있습니다. APM Server의 출력 구성은 Elasticsearch와의 신뢰 관계를 자동으로 설정하도록 구성됩니다.

 

다음 사양을 적용하여 퀵스타트에서 생성한 클러스터에 APM Server를 배포하고 연결합니다.

cat <<EOF | kubectl apply -f -
apiVersion: apm.k8s.elastic.co/v1
kind: ApmServer
metadata:
  name: apm-server-quickstart
  namespace: default
spec:
  version: 8.11.1
  count: 1
  elasticsearchRef:
    name: quickstart
EOF

기본적으로 elasticsearchRef는 Elasticsearch 클러스터의 모든 노드를 대상으로합니다. 클러스터의 특정 노드로 트래픽을 직접 전송하려면 Traffic Splitting을 참조하여 더 많은 정보와 예제를 확인하십시오.

 

APM Server 인스턴스에 대한 세부 정보를 검색할 수 있습니다.

kubectl get apmservers 

결과는 다음과 같이 표시됩니다.

NAME                     HEALTH    NODES    VERSION   AGE
apm-server-quickstart    green     1        8.11.1      8m

또한 특정 배포에 속하는 모든 Pod를 나열할 수 있습니다.

kubectl get pods --selector='apm.k8s.elastic.co/name=apm-server-quickstart' 

결과는 다음과 같이 표시됩니다.

NAME                                                READY   STATUS    RESTARTS   AGE
apm-server-quickstart-apm-server-69b447ddc5-fflc6   1/1     Running   0          2m50s

이제 Elasticsearch 클러스터에 APM Server가 배포되었으며, 해당 인스턴스에 대한 상태와 배포를 확인할 수 있습니다.

Fleet Server 및 Elastic Agents 배포

cat <<EOF | kubectl apply -f -
apiVersion: agent.k8s.elastic.co/v1alpha1
kind: Agent
metadata:
  name: fleet-server-quickstart
  namespace: default
spec:
  version: 8.11.1
  kibanaRef:
    name: kibana-quickstart
  elasticsearchRefs:
  - name: elasticsearch-quickstart
  mode: fleet
  fleetServerEnabled: true
  policyID: eck-fleet-server
  deployment:
    replicas: 1
    podTemplate:
      spec:
        serviceAccountName: elastic-agent
        automountServiceAccountToken: true
        securityContext:
          runAsUser: 0 
---
apiVersion: agent.k8s.elastic.co/v1alpha1
kind: Agent
metadata:
  name: elastic-agent-quickstart
  namespace: default
spec:
  version: 8.11.1
  kibanaRef:
    name: kibana-quickstart
  fleetServerRef:
    name: fleet-server-quickstart
  mode: fleet
  policyID: eck-agent
  daemonSet:
    podTemplate:
      spec:
        serviceAccountName: elastic-agent
        automountServiceAccountToken: true
        securityContext:
          runAsUser: 0 
        volumes:
        - name: agent-data
          emptyDir: {}
---
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: kibana-quickstart
  namespace: default
spec:
  version: 8.11.1
  count: 1
  elasticsearchRef:
    name: elasticsearch-quickstart
  config:
    xpack.fleet.agents.elasticsearch.hosts: ["https://elasticsearch-quickstart-es-http.default.svc:9200"]
    xpack.fleet.agents.fleet_server.hosts: ["https://fleet-server-quickstart-agent-http.default.svc:8220"]
    xpack.fleet.packages:
      - name: system
        version: latest
      - name: elastic_agent
        version: latest
      - name: fleet_server
        version: latest
    xpack.fleet.agentPolicies:
      - name: Fleet Server on ECK policy
        id: eck-fleet-server
        namespace: default
        monitoring_enabled:
          - logs
          - metrics
        unenroll_timeout: 900
        package_policies:
        - name: fleet_server-1
          id: fleet_server-1
          package:
            name: fleet_server
      - name: Elastic Agent on ECK policy
        id: eck-agent
        namespace: default
        monitoring_enabled:
          - logs
          - metrics
        unenroll_timeout: 900
        package_policies:
          - name: system-1
            id: system-1
            package:
              name: system
---
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: elasticsearch-quickstart
  namespace: default
spec:
  version: 8.11.1
  nodeSets:
  - name: default
    count: 3
    config:
      node.store.allow_mmap: false
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: elastic-agent
rules:
- apiGroups: [""] # "" indicates the core API group
  resources:
  - pods
  - nodes
  - namespaces
  verbs:
  - get
  - watch
  - list
- apiGroups: ["coordination.k8s.io"]
  resources:
  - leases
  verbs:
  - get
  - create
  - update
- apiGroups: ["apps"]
  resources:
  - replicasets
  verbs:
  - list
  - watch
- apiGroups: ["batch"]
  resources:
  - jobs
  verbs:
  - list
  - watch
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: elastic-agent
  namespace: default
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: elastic-agent
subjects:
- kind: ServiceAccount
  name: elastic-agent
  namespace: default
roleRef:
  kind: ClusterRole
  name: elastic-agent
  apiGroup: rbac.authorization.k8s.io
EOF

이 구성은 Fleet Server, Elastic Agents, Elasticsearch 및 Kibana를 배포하고 설정합니다. Elastic Agent는 root 사용자로 실행될 수 있어서 호스트 경로 볼륨에 상태를 유지하고 Fleet 모드에서 Elasticsearch CA를 신뢰해야합니다. Agent 컨테이너를 root로 실행하지 않는 옵션에 대한 자세한 내용은 "Storing local state in host path volume"를 참조하십시오.

 

ECK는 모든 구성 요소 간의 안전한 연결을 자동으로 구성합니다. Fleet이 설정되고 모든 에이전트가 기본 정책에 등록됩니다.

 

Fleet Server 및 Elastic Agent의 상태를 모니터링할 수 있습니다.

kubectl get agent 

결과는 다음과 같이 표시됩니다.

NAME                       HEALTH   AVAILABLE   EXPECTED   VERSION      AGE
elastic-agent-quickstart   green    3           3          8.11.1    14s
fleet-server-quickstart    green    1           1          8.11.1    19s

특정 Elastic Agent 사양에 속하는 모든 Pod를 나열할 수 있습니다.

kubectl get pods --selector='agent.k8s.elastic.co/name=elastic-agent-quickstart' 

결과는 다음과 같이 표시됩니다.

NAME                                   READY   STATUS    RESTARTS   AGE
elastic-agent-quickstart-agent-t49fd   1/1     Running   0          54s
elastic-agent-quickstart-agent-xbcxr   1/1     Running   0          54s
elastic-agent-quickstart-agent-zqp55   1/1     Running   0          54s

이제 Elastic Agent 정책을 구성하고, Elastic Agent policies를 확인하여 자세한 내용을 확인할 수 있습니다.

Enterprise Search 배포

ECK를 사용하여 Enterprise Search를 배포하려면 다음 명세를 적용하세요. ECK는 Elasticsearch 퀵스타트에서 생성된 quickstart라는 이름의 Elasticsearch 클러스터에 대한 보안 연결을 자동으로 구성합니다.

cat <<EOF | kubectl apply -f -
apiVersion: enterprisesearch.k8s.elastic.co/v1
kind: EnterpriseSearch
metadata:
  name: enterprise-search-quickstart
spec:
  version: 8.11.1
  count: 1
  elasticsearchRef:
    name: quickstart
EOF

Workplace Search는 7.7부터 7.8까지의 버전에서 ECK에서 엔터프라이즈 라이선스가 필요했습니다. 30일 무료 평가판 라이선스로 시작할 수 있습니다.

 

Enterprise Search 배포에 대한 세부 정보를 검색합니다.

kubectl get enterprisesearch 

결과는 다음과 같이 표시됩니다.

NAME                           HEALTH   NODES   VERSION   AGE
enterprise-search-quickstart   green    1       8.11.1    8m

주어진 배포에 속하는 모든 Pod를 나열합니다.

kubectl get pods --selector='enterprisesearch.k8s.elastic.co/name=enterprise-search-quickstart' 

결과는 다음과 같이 표시됩니다.

NAME                                             READY   STATUS    RESTARTS   AGE
enterprise-search-quickstart-ent-58b84db85-dl7c6   1/1     Running   0          2m50s

그 Pod의 로그에 액세스합니다.

kubectl logs -f enterprise-search-quickstart-ent-58b84db85-dl7c6

Enterprise Search에 액세스합니다.

 

배포를 위해 자동으로 ClusterIP 서비스가 생성되며, 해당 서비스를 사용하여 Kubernetes 클러스터 내에서 Enterprise Search API에 액세스할 수 있습니다.

kubectl get service enterprise-search-quickstart-ent-http

kubectl port-forward를 사용하여 로컬 워크스테이션에서 Enterprise Search에 액세스합니다.

kubectl port-forward service/enterprise-search-quickstart-ent-http 3002

웹 브라우저에서 https://localhost:3002을 엽니다.

 

Elasticsearch 클러스터와 함께 생성된 elastic 사용자로 로그인합니다. 해당 비밀번호는 다음 명령을 사용하여 얻을 수 있습니다.

kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo

Kibana에서 Enterprise Search UI에 액세스합니다. 7.14.0 버전부터 Kibana에서 Enterprise Search UI에 액세스할 수 있습니다.

 

Elasticsearch 및 Enterprise Search에 모두 연결하도록 구성된 Kibana를 배포하려면 다음 명세를 적용하세요.

cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: quickstart
spec:
  version: 8.11.1
  count: 1
  elasticsearchRef:
    name: quickstart
  enterpriseSearchRef:
    name: enterprise-search-quickstart
EOF

kubectl port-forward를 사용하여 로컬 워크스테이션에서 Kibana에 액세스합니다.

kubectl port-forward service/quickstart-kb-http 5601

웹 브라우저에서 https://localhost:5601을 열고 Enterprise Search UI로 이동합니다.

Filebeat 배포

Kubernetes 클러스터에서 실행 중인 모든 컨테이너의 로그를 수집하는 구성을 적용합니다. ECK는 Elasticsearch 퀵스타트에서 생성된 quickstart라는 이름의 Elasticsearch 클러스터에 대한 보안 연결을 자동으로 구성합니다.

cat <<EOF | kubectl apply -f -
apiVersion: beat.k8s.elastic.co/v1beta1
kind: Beat
metadata:
  name: quickstart
spec:
  type: filebeat
  version: 8.11.1
  elasticsearchRef:
    name: quickstart
  config:
    filebeat.inputs:
    - type: container
      paths:
      - /var/log/containers/*.log
  daemonSet:
    podTemplate:
      spec:
        dnsPolicy: ClusterFirstWithHostNet
        hostNetwork: true
        securityContext:
          runAsUser: 0
        containers:
        - name: filebeat
          volumeMounts:
          - name: varlogcontainers
            mountPath: /var/log/containers
          - name: varlogpods
            mountPath: /var/log/pods
          - name: varlibdockercontainers
            mountPath: /var/lib/docker/containers
        volumes:
        - name: varlogcontainers
          hostPath:
            path: /var/log/containers
        - name: varlogpods
          hostPath:
            path: /var/log/pods
        - name: varlibdockercontainers
          hostPath:
            path: /var/lib/docker/containers
EOF

이 구성은 Filebeat을 배포하고 Elasticsearch 클러스터로 로그를 수집하도록 설정합니다. Filebeat이 Kubernetes 클러스터의 모든 컨테이너 로그를 감지하고 Elasticsearch에 전송하게됩니다.

 

Filebeat에 대한 세부 정보를 검색합니다.

kubectl get beat 

결과는 다음과 같이 표시됩니다.

NAME        HEALTH   AVAILABLE   EXPECTED   TYPE       VERSION   AGE
quickstart  green    3           3          filebeat   8.11.1    2m

주어진 Beat에 속하는 모든 Pod를 나열합니다.

kubectl get pods --selector='beat.k8s.elastic.co/name=quickstart-beat-filebeat' 

결과는 다음과 같이 표시됩니다.

NAME                              READY   STATUS    RESTARTS   AGE
quickstart-beat-filebeat-tkz65    1/1     Running   0          3m45s
quickstart-beat-filebeat-kx5jt    1/1     Running   0          3m45s
quickstart-beat-filebeat-nb6qh    1/1     Running   0          3m45s

Pod 중 하나의 로그에 액세스합니다.

kubectl logs -f quickstart-beat-filebeat-tkz65

Filebeat에 의해 수집된 로그에 액세스하는 방법은 두 가지입니다.

  1. Elasticsearch 배포 가이드를 따라 실행하고:
curl -u "elastic:$PASSWORD" -k "https://localhost:9200/filebeat-*/_search"
  1. Kibana 배포 가이드를 따라 로그인하고 Kibana > Discover로 이동합니다.

Logstash 배포

Beats 에이전트 또는 Logstash로 데이터를 보내도록 구성된 Elastic Agent가 5044 포트로 전송하도록하는 최소한의 Logstash 배포를 생성하며, 서비스를 생성하고 결과를 Elasticsearch 퀵스타트에서 사용할 것으로 정의합니다.

cat <<EOF | kubectl apply -f -
apiVersion: logstash.k8s.elastic.co/v1alpha1
kind: Logstash
metadata:
  name: quickstart
spec:
  count: 1
  elasticsearchRefs:
    - name: quickstart
      clusterName: qs
  version: 8.11.1
  pipelines:
    - pipeline.id: main
      config.string: |
        input {
          beats {
            port => 5044
          }
        }
        output {
          elasticsearch {
            hosts => [ "${QS_ES_HOSTS}" ]
            user => "${QS_ES_USER}"
            password => "${QS_ES_PASSWORD}"
            ssl_certificate_authorities => "${QS_ES_SSL_CERTIFICATE_AUTHORITY}"
          }
        }
  services:
    - name: beats
      service:
        spec:
          type: NodePort
          ports:
            - port: 5044
              name: "filebeat"
              protocol: TCP
              targetPort: 5044
EOF

Logstash의 상태를 확인합니다.

kubectl get logstash 

결과는 다음과 같이 표시됩니다.

NAME              AVAILABLE   EXPECTED   AGE   VERSION
quickstart        3           3          4s    8.11.1

주어진 Logstash 명세에 속하는 모든 Pod를 나열합니다.

kubectl get pods --selector='logstash.k8s.elastic.co/name=quickstart' 

결과는 다음과 같이 표시됩니다.

NAME              READY   STATUS    RESTARTS   AGE
quickstart-ls-0   1/1     Running   0          91s

Pod의 로그에 액세스합니다.

kubectl logs -f quickstart-ls-0

이것으로 Logstash를 ECK에서 실행하고 설정하는 과정이 완료되었습니다.

728x90

댓글