Elasticsearch 데이터 저장소 업그레이드 Linux x86_64

Elasticsearch 연산자를 업그레이드하고 데이터 저장소를 업데이트하십시오.

시작하기 전에

온라인 및 오프라인 호스트가 외부 저장소에서 이미지를 가져올 수 있도록 준비했는지 확인하십시오. 또한, Helm 저장소를 추가했는지 확인하십시오.

Elasticsearch 연산자 버전 및 이미지 태그

다음 이미지는 고정된 Helm 차트 또는 연산자 버전에 필요합니다.

플랫폼 오퍼레이터 버전 Helm 차트 버전 태그가 있는 이미지
Linux® x86_64 3.4.1 3.4.1

artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch: 3.4.1_v0.34.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch: 8.18.6_v0.25.0

Elasticsearch 온라인 업그레이드

Elasticsearch 데이터 저장소를 업그레이드하려면 다음 단계를 완료하십시오.

  1. Elasticsearch 연산자를 업그레이드하십시오.

    helm upgrade --install elastic-operator instana/eck-operator -n instana-elastic --version=3.4.1 --set image.repository=artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch --set image.tag=3.4.1_v0.34.0 --set imagePullSecrets[0].name="instana-registry"
     
  2. Elasticsearch 구성을 업데이트하십시오.

    kubectl patch elasticsearch instana -n instana-elastic --type=merge --patch '
    spec:
      version: "3.4.1"
      image: artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0
      '
     
  3. Elasticsearch 확인(온라인 및 오프라인) 단계를 완료하십시오.

Elasticsearch 오프라인 업그레이드

외부 레지스트리에서 Elasticsearch 이미지를 가져오지 않았다면 지금 가져올 수 있습니다. 다음 명령어를 귀하의 바스티온 호스트에서 실행하십시오. 그런 다음, 이미지를 에어갭 환경에 있는 Instana 호스트로 복사하십시오.

docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch:3.4.1_v0.34.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0
         

Instana 호스트에서 다음 단계를 완료하십시오.

  1. 이미지를 내부 이미지 레지스트리에 재태그하십시오.
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/elasticsearch:3.4.1_v0.34.0 <internal-image-registry>/operator/elasticsearch:3.4.1_v0.34.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0 <internal-image-registry>/datastore/elasticsearch:8.18.6_v0.25.0
                   
  2. 이미지를 내부 이미지 레지스트리로 푸시하십시오.
    docker push <internal-image-registry>/operator/elasticsearch:3.4.1_v0.34.0
    docker push <internal-image-registry>/datastore/elasticsearch:8.18.6_v0.25.0
                   
  3. Elasticsearch 연산자를 업그레이드하십시오.
    helm upgrade --install elastic-operator eck-operator-3.4.1.tgz -n instana-elastic --version=3.4.1 --set image.repository=<internal-image-registry>/operator/elasticsearch --set image.tag=3.4.1_v0.34.0 --set imagePullSecrets[0].name="<internal-image-registry-pull-secret>
     
  4. Elasticsearch 구성을 업데이트하십시오. 예를 들어 elasticsearch.yaml, Elasticsearch 구성으로 업데이트하십시오.
    kubectl patch elasticsearch instana -n instana-elastic --type=merge --patch '
    spec:
      version: "8.18.6_v0.25.0"
      image: <internal-image-registry>/self-hosted-images/3rd-party/datastore/elasticsearch:8.18.6_v0.25.0
      '
     
  5. Elasticsearch 확인(온라인 및 오프라인) 단계를 완료하십시오.

Elasticsearch 검증 (온라인 및 오프라인)

Elasticsearch 업그레이드를 확인하려면 다음 단계를 완료하십시오:

  1. Elasticsearch 를 기다리세요.

    kubectl wait elasticsearch/instana --for=condition=ReconciliationComplete --timeout=300s -n instana-elastic
     
  2. Elasticsearch 연산자를 검증하십시오.

     kubectl get all -n instana-elastic
     

    Elasticsearch 운영자가 성공적으로 업그레이드되면 명령어 출력에 운영자 상태가 다음과 Running 같이 표시됩니다:

     NAME                       READY   STATUS    RESTARTS      AGE
     pod/elastic-operator-0     1/1     Running   1 (10m ago)   10m
     pod/instana-es-default-0   1/1     Running   0             6m44s
     pod/instana-es-default-1   1/1     Running   0             6m44s
     pod/instana-es-default-2   1/1     Running   0             6m44s
    
     NAME                               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
     service/elastic-operator-webhook   ClusterIP   192.168.1.41    <none>        443/TCP    10m
     service/instana-es-default         ClusterIP   None            <none>        9200/TCP   6m46s
     service/instana-es-http            ClusterIP   192.168.1.111   <none>        9200/TCP   6m48s
     service/instana-es-internal-http   ClusterIP   192.168.1.196   <none>        9200/TCP   6m48s
     service/instana-es-transport       ClusterIP   None            <none>        9300/TCP   6m48s
    
     NAME                                  READY   AGE
     statefulset.apps/elastic-operator     1/1     10m
     statefulset.apps/instana-es-default   3/3     6m48s
     
  3. 포드가 원하는 노드에 스케줄링되었는지 확인하십시오.

    kubectl get pods -n instana-elastic -o wide
     

    다음 예시에서 샘플 출력을 보여줍니다.

    NAME                   READY   STATUS    RESTARTS   AGE   IP              NODE                                  NOMINATED NODE   READINESS GATES
    elastic-operator-0     1/1     Running   1          22d   10.254.12.202   worker0.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-es-default-0   1/1     Running   0          34h   10.254.16.137   worker1.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-es-default-1   1/1     Running   0          34h   10.254.24.101   worker2.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-es-default-2   1/1     Running   0          34h   10.254.20.186   worker3.instana-odf5.cp.fyre.ibm.com   <none>           <none>