Creazione di un archivio dati " ClickHouse " su Linux on IBM Z and LinuxONE

Installare l'operatore ClickHouse e impostare l'archivio dati.

Nota: dopo la creazione iniziale di un cluster ClickHouse o dopo aver aumentato il numero di shard, il cluster potrebbe impiegare alcuni minuti per collegare gli shard.

ClickHouse versioni degli operatori e tag delle immagini

Le seguenti immagini sono necessarie per le versioni dell'operatore o del grafico Helm in evidenza.

Tabella 1. Versioni dell'operatore e tag immagine
Piattaforma Versioni operatore Versione grafico Helm Immagine con tag
Linux® on IBM Z® and LinuxONE v0.1.2 v0.1.2

artifact-public.instana.io/clickhouse-operator: v0.1.2

artifact-public.instana.io/clickhouse: 24.8.14.39-10-lts-ibm

Installazione di " ClickHouse " online

Completare questa procedura per installare l'archivio dati ClickHouse .

  1. Controlla se lo spazio dei nomi instana-clickhouse esiste nel tuo cluster. Se non esiste, è possibile crearla ora.

    1. Verificare se lo spazio dei nomi instana-clickhouse esiste.
      kubectl get namespace | grep clickhouse
       
    2. Se lo spazio dei nomi instana-clickhouse non esiste, crearlo ora.
      kubectl create namespace instana-clickhouse
       
    3. Crea l'account clickhouse di servizio.
    kubectl create serviceaccount clickhouse  -n instana-clickhouse
     
  2. Crea i segreti di pull dell'immagine per l'immagine ClickHouse . Aggiornare il valore <download_key> con la propria chiave di download.

    kubectl create secret docker-registry instana-registry \
    --namespace=instana-clickhouse \
    --docker-username=_ \
    --docker-password=<download_key> \
    --docker-server=artifact-public.instana.io
     
  3. Crea un file ` YAML `, ad esempio clickhouse-scc.yaml, contenente la definizione SCC ( SecurityContextConstraints ).

    apiVersion: security.openshift.io/v1
    kind: SecurityContextConstraints
    metadata:
      name: clickhouse-scc
    runAsUser:
      type: MustRunAs
      uid: 1001
    seLinuxContext:
      type: RunAsAny
    fsGroup:
      type: RunAsAny
    allowHostDirVolumePlugin: false
    allowHostNetwork: true
    allowHostPorts: true
    allowPrivilegedContainer: false
    allowHostIPC: true
    allowHostPID: true
    readOnlyRootFilesystem: false
    users:
      - system:serviceaccount:instana-clickhouse:clickhouse-operator
      - system:serviceaccount:instana-clickhouse:clickhouse-operator-ibm-clickhouse-operator
      - system:serviceaccount:instana-clickhouse:clickhouse
     
  4. Creare la risorsa SCC.

    kubectl apply -f clickhouse-scc.yaml
     
  5. Crea un file custom_values.yaml e specifica la tolleranza e l'affinità.

    tolerations:
       - key: node.instana.io/monitor
         operator: Equal
         effect: NoSchedule
         value: "true"
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: node-role.kubernetes.io/monitor
                  operator: In
                  values:
                    - "true"
     
  6. Installare l'operatore ClickHouse .

    helm install clickhouse-operator instana/ibm-clickhouse-operator -n instana-clickhouse --version=v0.1.2 --set operator.image.repository=artifact-public.instana.io/clickhouse-operator --set operator.image.tag=v0.1.2 --set imagePullSecrets[0].name="instana-registry" -f custom_values.yaml
     
  7. Decidere una password per l'utente ClickHouse . In un passo successivo, si crea una risorsa personalizzata ClickHouseInstallation in cui è necessario specificare la password utente ClickHouse nella sezione spec.configuration.users . È possibile utilizzare una password in testo chiaro o una password hash SHA256 o SHA1 .

    • Hash SHA256

      Se vuoi utilizzare una password hash SHA256 , completa la seguente procedura:

      1. Generare una password casuale e l'hash SHA256 corrispondente.

        PASSWORD=$(base64 < /dev/urandom | head -c16); echo "Password: $PASSWORD"; HEX=$(echo -n "$PASSWORD" | sha256sum | tr -d '-'); echo "SHA256: $HEX"
         
      2. In ClickHouseInstallation CR, sostituire clickhouse-user/password: "clickhouse-pass" con clickhouse-user/password_sha256_hex: "<SHA256_HEX>". Consultare il codice di esempio riportato di seguito:

        spec:
          configuration:
            users:
              clickhouse-user/password_sha256_hex: "<SHA256_HEX>"
         
    • Hash SHA1

      Se si desidera utilizzare una password hash SHA1 , completare la seguente procedura:

      1. Generare una password casuale e l'hash SHA1 corrispondente.

        PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
         
      2. In ClickHouseInstallation CR, sostituire clickhouse-user/password: "clickhouse-pass" con clickhouse-user/password_double_sha1_hex: "<SHA1_HEX>". Consultare il codice di esempio riportato di seguito:

        spec:
          configuration:
            users:
              clickhouse-user/password_double_sha1_hex: "<SHA1_HEX>"
         
  8. Crea un file ` YAML `, ad esempio clickhouse_installation.yaml, contenente la definizione ClickHouseInstallation della risorsa. Aggiorna il zookeeper.nodes.host campo con il nome host del tuo cluster ZooKeeper. Se si utilizza un hash come password, aggiornare la password come mostrato nel passo precedente.

    apiVersion: "clickhouse.altinity.com/v1"
    kind: "ClickHouseInstallation"
    metadata:
      name: "instana"
    spec:
      defaults:
        templates:
          dataVolumeClaimTemplate: instana-clickhouse-data-volume
          logVolumeClaimTemplate: instana-clickhouse-log-volume
          serviceTemplate: service-template
      configuration:
        files:
          config.d/storage.xml: |
            <clickhouse>
              <storage_configuration>
                <disks>
                  <default/>
                  <cold_disk>
                    <path>/var/lib/clickhouse-cold/</path>
                  </cold_disk>
                </disks>
                <policies>
                  <logs_policy>
                    <volumes>
                      <data>
                        <disk>default</disk>
                      </data>
                      <cold>
                        <disk>cold_disk</disk>
                      </cold>
                    </volumes>
                  </logs_policy>
                  <logs_policy_v4>
                    <volumes>
                      <tier1>
                        <disk>default</disk>
                      </tier1>
                      <tier2>
                        <disk>cold_disk</disk>
                      </tier2>
                    </volumes>
                  </logs_policy_v4>
                </policies>
              </storage_configuration>
            </clickhouse>
        clusters:
          - name: local
            templates:
              podTemplate: clickhouse
            layout:
              shardsCount: 1
              replicasCount: 2 # The replication count of 2 is fixed for Instana backend installations
            schemaPolicy:
              replica: None
              shard: None
        zookeeper:
          nodes:
            - host: instana-zookeeper-headless.instana-clickhouse
        profiles:
          default/prefer_localhost_replica: 1
          default/max_memory_usage: 10000000000 # If memory limits are set, this value must be adjusted according to the limits.
          default/joined_subquery_requires_alias: 0
          default/max_execution_time: 100
          default/max_query_size: 1048576
          default/use_uncompressed_cache: 0
          default/enable_http_compression: 1
          default/load_balancing: random
          default/background_pool_size: 32
          default/background_schedule_pool_size: 32
          default/distributed_directory_monitor_split_batch_on_failure: 1
          default/distributed_directory_monitor_batch_inserts: 1
          default/insert_distributed_sync: 1
          default/log_queries: 1
          default/log_query_views: 1
          default/max_threads: 16
          default/allow_experimental_database_replicated: 1
          default/allow_experimental_analyzer: 0
        quotas:
          default/interval/duration: 3600
          default/interval/queries: 0
          default/interval/errors: 0
          default/interval/result_rows: 0
          default/interval/read_rows: 0
          default/interval/execution_time: 0
        settings:
          remote_servers/all-sharded/secret: clickhouse-default-pass
          remote_servers/all-replicated/secret: clickhouse-default-pass
          remote_servers/local/secret: clickhouse-default-pass
          max_concurrent_queries: 200
          max_table_size_to_drop: 0
          max_partition_size_to_drop: 0
        users:
          default/password: "clickhouse-default-pass"
          clickhouse-user/networks/ip: "::/0"
          clickhouse-user/password: "clickhouse-pass"
          # Or
          # Generate password and the corresponding SHA256 hash with:
          # $ PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
          # 6edvj2+d                                                          <- first line is the password
          # a927723f4a42cccc50053e81bab1fcf579d8d8fb54a3ce559d42eb75a9118d65  <- second line is the corresponding SHA256 hash
          # clickhouse-user/password_sha256_hex: "a927723f4a42cccc50053e81bab1fcf579d8d8fb54a3ce559d42eb75a9118d65"
          # Or
          # Generate password and the corresponding SHA1 hash with:
          # $ PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
          # LJfoOfxl                                  <- first line is the password, put this in the k8s secret
          # 3435258e803cefaab7db2201d04bf50d439f6c7f  <- the corresponding double SHA1 hash, put this below
          # clickhouse-user/password_double_sha1_hex: "3435258e803cefaab7db2201d04bf50d439f6c7f"
      templates:
        podTemplates:
          - name: clickhouse
            spec:
              containers:
                - name: instana-clickhouse
                  image: artifact-public.instana.io/clickhouse:24.8.14.39-10-lts-ibm
                  command:
                    - clickhouse-server
                    - --config-file=/etc/clickhouse-server/config.xml
                  volumeMounts:
                    - mountPath: /var/lib/clickhouse-cold/
                      name: instana-clickhouse-data-cold-volume
                - name: clickhouse-log
                  image: artifact-public.instana.io/clickhouse:24.8.14.39-10-lts-ibm
                  args:
                    - while true; do sleep 30; done;
                  command:
                    - /bin/sh
                    - -c
                    - --
              serviceAccountName: clickhouse
              imagePullSecrets:
                - name: instana-registry
              securityContext:
                fsGroup: 0
                runAsGroup: 0
                runAsUser: 1001
              tolerations:
                - key: node.instana.io/monitor
                  operator: Equal
                  effect: NoSchedule
                  value: "true"
              affinity:
                nodeAffinity:
                  requiredDuringSchedulingIgnoredDuringExecution:
                    nodeSelectorTerms:
                      - matchExpressions:
                        - key: node-role.kubernetes.io/monitor
                          operator: In
                          values:
                          - "true"
            # Optional - uncomment the following lines if resources need to be specifically defined for the clickhouse pods. The following values are for example only.
            # resources:
            #   limits:
            #     cpu: "4"
            #     memory: 4Gi
            #   requests:
            #     cpu: "1"
            #     memory: 2Gi
        volumeClaimTemplates:
          - name: instana-clickhouse-data-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 100Gi
          - name: instana-clickhouse-log-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 1Gi
          - name: instana-clickhouse-data-cold-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 100Gi
        serviceTemplates:
          - name: service-template
            generateName: "clickhouse-{chi}"
            spec:
              ports:
                - name: http
                  port: 8123
                - name: tcp
                  port: 9000
              type: ClusterIP
     
  9. Completare la procedura in Distribuzione e verifica di ClickHouse (online e offline).

Installa " ClickHouse " in modalità offline

Se non hai ancora eseguito il pull delle immagini ClickHouse dal registro esterno quando hai preparato per l'installazione, puoi eseguirne il pull ora. Immetti questi comandi sul tuo host bastion. Quindi, copia le immagini sul tuo host Instana che si trova nel tuo ambiente isolato.

docker pull artifact-public.instana.io/clickhouse-operator:v0.1.2
docker pull artifact-public.instana.io/clickhouse:24.8.14.39-10-lts-ibm
         

Esegui i seguenti passaggi sul tuo host Instana.

  1. Contrassegnare le immagini con una nuova tag nel registro delle immagini interno.

    docker tag artifact-public.instana.io/clickhouse-operator:v0.1.2 <internal-image-registry>/clickhouse-operator:v0.1.2
    docker tag artifact-public.instana.io/clickhouse:24.8.14.39-10-lts-ibm <internal-image-registry>/clickhouse:24.8.14.39-10-lts-ibm
                   
  2. Eseguire il push delle immagini al registro delle immagini interno.

    docker push <internal-image-registry>/clickhouse-operator:v0.1.2
    docker push <internal-image-registry>/clickhouse:24.8.14.39-10-lts-ibm
                   
  3. Crea un file ` YAML `, ad esempio clickhouse-scc.yaml, contenente la definizione SCC ( SecurityContextConstraints ).

    apiVersion: security.openshift.io/v1
    kind: SecurityContextConstraints
    metadata:
      name: clickhouse-scc
    runAsUser:
      type: MustRunAs
      uid: 1001
    seLinuxContext:
      type: RunAsAny
    fsGroup:
      type: RunAsAny
    allowHostDirVolumePlugin: false
    allowHostNetwork: true
    allowHostPorts: true
    allowPrivilegedContainer: false
    allowHostIPC: true
    allowHostPID: true
    readOnlyRootFilesystem: false
    users:
      - system:serviceaccount:instana-clickhouse:clickhouse-operator
      - system:serviceaccount:instana-clickhouse:clickhouse-operator-ibm-clickhouse-operator
      - system:serviceaccount:instana-clickhouse:clickhouse
     
  4. Creare la risorsa SCC.

    kubectl apply -f clickhouse-scc.yaml
     
  5. Controlla se lo spazio dei nomi instana-clickhouse esiste nel tuo cluster. Se non esiste, è possibile crearla ora.

    1. Verificare se lo spazio dei nomi instana-clickhouse esiste.
      kubectl get namespace | grep clickhouse
       
    2. Se lo spazio dei nomi instana-clickhouse non esiste, crearlo ora.
      kubectl create namespace instana-clickhouse
       
    3. Crea l'account clickhouse di servizio.
    kubectl create serviceaccount clickhouse  -n instana-clickhouse
     
  6. Opzionale: Creare un segreto di estrazione dell'immagine se il registro delle immagini interno richiede l'autenticazione.

    kubectl create secret docker-registry <secret_name> --namespace instana-clickhouse \
    --docker-username=<registry_username> \
    --docker-password=<registry_password> \
    --docker-server=<internal-image-registry>:<internal-image-registry-port> \
    --docker-email=<registry_email>
     
  7. Crea un file custom_values.yaml e specifica la tolleranza e l'affinità.

    tolerations:
       - key: node.instana.io/monitor
         operator: Equal
         effect: NoSchedule
         value: "true"
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: node-role.kubernetes.io/monitor
                  operator: In
                  values:
                    - "true"
     
  8. Installare l'operatore ClickHouse . Se si è creata un'immagine pull secret nel passaggio precedente, aggiungere --set imagePullSecrets[0].name="<internal-image-registry-pull-secret>" al comando seguente.

    helm install clickhouse-operator ibm-clickhouse-operator-v0.1.2.tgz -n instana-clickhouse --version=v0.1.2 --set operator.image.repository=<internal-image-registry>/clickhouse-operator --set operator.image.tag=v0.1.2 -f custom_values.yaml
     
  9. Decidere una password per l'utente ClickHouse . In un passo successivo, si crea una risorsa personalizzata ClickHouseInstallation in cui è necessario specificare la password utente ClickHouse nella sezione spec.configuration.users . È possibile utilizzare una password in testo non codificato o una password hash SHA256 o SHA1 .

    • Hash SHA256

      Se vuoi utilizzare una password hash SHA256 , completa la seguente procedura:

      1. Generare una password casuale e l'hash SHA256 corrispondente.

        PASSWORD=$(base64 < /dev/urandom | head -c16); echo "Password: $PASSWORD"; HEX=$(echo -n "$PASSWORD" | sha256sum | tr -d '-'); echo "SHA256: $HEX"
         
      2. In ClickHouseInstallation CR, sostituire clickhouse-user/password: "clickhouse-pass" con clickhouse-user/password_sha256_hex: "<SHA256_HEX>". Consultare il codice di esempio riportato di seguito:

        spec:
          configuration:
            users:
              clickhouse-user/password_sha256_hex: "<SHA256_HEX>"
         
    • Hash SHA1

      Se si desidera utilizzare una password hash SHA1 , completare la seguente procedura:

      1. Generare una password casuale e l'hash SHA256 corrispondente.

        PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
         
      2. In ClickHouseInstallation CR, sostituire clickhouse-user/password: "clickhouse-pass" con clickhouse-user/password_double_sha1_hex: "<SHA1_HEX>". Consultare il codice di esempio riportato di seguito:

        spec:
          configuration:
            users:
              clickhouse-user/password_double_sha1_hex: "<SHA1_HEX>"
         
  10. Crea un file ` YAML `, ad esempio clickhouse_installation.yaml, contenente la definizione ClickHouseInstallation della risorsa. Aggiorna il zookeeper.nodes.host campo con il nome host del tuo cluster ZooKeeper. Se si utilizza un hash come password, aggiornare la password come mostrato nel passo precedente.

    apiVersion: "clickhouse.altinity.com/v1"
    kind: "ClickHouseInstallation"
    metadata:
      name: "instana"
    spec:
      defaults:
        templates:
          dataVolumeClaimTemplate: instana-clickhouse-data-volume
          logVolumeClaimTemplate: instana-clickhouse-log-volume
          serviceTemplate: service-template
      configuration:
        files:
          config.d/storage.xml: |
            <clickhouse>
              <storage_configuration>
                <disks>
                  <default/>
                  <cold_disk>
                    <path>/var/lib/clickhouse-cold/</path>
                  </cold_disk>
                </disks>
                <policies>
                  <logs_policy>
                    <volumes>
                      <data>
                        <disk>default</disk>
                      </data>
                      <cold>
                        <disk>cold_disk</disk>
                      </cold>
                    </volumes>
                  </logs_policy>
                  <logs_policy_v4>
                    <volumes>
                      <tier1>
                        <disk>default</disk>
                      </tier1>
                      <tier2>
                        <disk>cold_disk</disk>
                      </tier2>
                    </volumes>
                  </logs_policy_v4>
                </policies>
              </storage_configuration>
            </clickhouse>
        clusters:
          - name: local
            templates:
              podTemplate: clickhouse
            layout:
              shardsCount: 1
              replicasCount: 2 # The replication count of 2 is fixed for Instana backend installations
            schemaPolicy:
              replica: None
              shard: None
        zookeeper:
          nodes:
            - host: instana-zookeeper-headless.instana-clickhouse
        profiles:
          default/prefer_localhost_replica: 1
          default/max_memory_usage: 10000000000 # If memory limits are set, this value must be adjusted according to the limits.
          default/joined_subquery_requires_alias: 0
          default/max_execution_time: 100
          default/max_query_size: 1048576
          default/use_uncompressed_cache: 0
          default/enable_http_compression: 1
          default/load_balancing: random
          default/background_pool_size: 32
          default/background_schedule_pool_size: 32
          default/distributed_directory_monitor_split_batch_on_failure: 1
          default/distributed_directory_monitor_batch_inserts: 1
          default/insert_distributed_sync: 1
          default/log_queries: 1
          default/log_query_views: 1
          default/max_threads: 16
          default/allow_experimental_database_replicated: 1
        quotas:
          default/interval/duration: 3600
          default/interval/queries: 0
          default/interval/errors: 0
          default/interval/result_rows: 0
          default/interval/read_rows: 0
          default/interval/execution_time: 0
        settings:
          remote_servers/all-sharded/secret: clickhouse-default-pass
          remote_servers/all-replicated/secret: clickhouse-default-pass
          remote_servers/local/secret: clickhouse-default-pass
          max_concurrent_queries: 200
          max_table_size_to_drop: 0
          max_partition_size_to_drop: 0
        users:
          default/password: "clickhouse-default-pass"
          clickhouse-user/networks/ip: "::/0"
          clickhouse-user/password: "clickhouse-pass"
          # Or
          # Generate password and the corresponding SHA256 hash with:
          # $ PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
          # 6edvj2+d                                                          <- first line is the password
          # a927723f4a42cccc50053e81bab1fcf579d8d8fb54a3ce559d42eb75a9118d65  <- second line is the corresponding SHA256 hash
          # clickhouse-user/password_sha256_hex: "a927723f4a42cccc50053e81bab1fcf579d8d8fb54a3ce559d42eb75a9118d65"
          # Or
          # Generate password and the corresponding SHA1 hash with:
          # $ PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
          # LJfoOfxl                                  <- first line is the password, put this in the k8s secret
          # 3435258e803cefaab7db2201d04bf50d439f6c7f  <- the corresponding double SHA1 hash, put this below
          # clickhouse-user/password_double_sha1_hex: "3435258e803cefaab7db2201d04bf50d439f6c7f"
      templates:
        podTemplates:
          - name: clickhouse
            spec:
              containers:
                - name: instana-clickhouse
                  image: <internal-image-registry>/clickhouse:24.8.14.39-10-lts-ibm
                  command:
                    - clickhouse-server
                    - --config-file=/etc/clickhouse-server/config.xml
                  volumeMounts:
                    - mountPath: /var/lib/clickhouse-cold/
                      name: instana-clickhouse-data-cold-volume
                - name: clickhouse-log
                  image: <internal-image-registry>/clickhouse:24.8.14.39-10-lts-ibm
                  args:
                    - while true; do sleep 30; done;
                  command:
                    - /bin/sh
                    - -c
                    - --
            # Optional: if you created an image pull secret for your internal registry, uncomment the following lines and update the image pull secret information.
            # imagePullSecrets:
            #   - name: <internal-image-registry-pull-secret>
              serviceAccountName: clickhouse
              securityContext:
                fsGroup: 0
                runAsGroup: 0
                runAsUser: 1001
              tolerations:
                - key: node.instana.io/monitor
                  operator: Equal
                  effect: NoSchedule
                  value: "true"
              affinity:
                nodeAffinity:
                  requiredDuringSchedulingIgnoredDuringExecution:
                    nodeSelectorTerms:
                      - matchExpressions:
                        - key: node-role.kubernetes.io/monitor
                          operator: In
                          values:
                          - "true"
            # Optional - uncomment the following lines if resources need to be specifically defined for the clickhouse pods. The following values are for example only.
            # resources:
            #   limits:
            #     cpu: "4"
            #     memory: 4Gi
            #   requests:
            #     cpu: "1"
            #     memory: 2Gi
        volumeClaimTemplates:
          - name: instana-clickhouse-data-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 100Gi
          - name: instana-clickhouse-log-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 1Gi
          - name: instana-clickhouse-data-cold-volume
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 100Gi
        serviceTemplates:
          - name: service-template
            generateName: "clickhouse-{chi}"
            spec:
              ports:
                - name: http
                  port: 8123
                - name: tcp
                  port: 9000
              type: ClusterIP
     
  11. Completare la procedura in Distribuzione e verifica di ClickHouse (online e offline).

Implementazione e verifica di ClickHouse

Completare questi passi per distribuire l'istanza ClickHouse e creare l'archivio dati.

  1. Per schierareClickHouse, eseguire il seguente comando:

    kubectl apply -f clickhouse_installation.yaml -n instana-clickhouse
     
  2. Nel file config.yaml , memorizzare la password utente ClickHouse .

    Nota: è necessario utilizzare la stessa password casuale creata in precedenza al momento dell'installazione online di ClickHouse o dell'installazione offline di ClickHouse. Non inserire qui la password con hash SHA256 corrispondente.
    datastoreConfigs:
      ...
      clickhouseConfigs:
        - user: clickhouse-user
          password: <USER_GENERATED_PASSWORD>
          adminUser: clickhouse-user
          adminPassword: <USER_GENERATED_PASSWORD>
      ...
     
  3. Se si desidera configurare il cluster ClickHouse nella configurazione principale, non immettere il servizio del programma di bilanciamento del carico dell'intero cluster. Aggiungere solo i singoli servizi del nodo utilizzando lo schema seguente. Replica 1 e 2 su ascendente al frammento:

    spec:
    ...
      datastoreConfigs:
        clickhouseConfigs:
           - clusterName: local
             authEnabled: true
             hosts:
               - chi-instana-local-0-0.instana-clickhouse
               - chi-instana-local-0-1.instana-clickhouse
               - chi-instana-local-1-0.instana-clickhouse
               - chi-instana-local-1-1.instana-clickhouse
               - chi-instana-local-n-0.instana-clickhouse
               - chi-instana-local-n-1.instana-clickhouse
    ...
     
  4. Verificare la distribuzione dell'operatore ClickHouse .

    kubectl get all -n instana-clickhouse
     

    Se l'operatore ClickHouse viene distribuito correttamente, l'output del comando mostra lo stato dell'operatore come Running , come mostrato nel seguente esempio:

    NAME                                                                  READY   STATUS    RESTARTS   AGE
    pod/chi-instana-local-0-0-0                                           2/2     Running   0          8m46s
    pod/chi-instana-local-0-1-0                                           2/2     Running   0          8m5s
    pod/clickhouse-operator-altinity-clickhouse-operator-86b5f9b57689rr   2/2     Running   0          70m
    pod/instana-zookeeper-0                                               1/1     Running   0          4h3m
    pod/instana-zookeeper-1                                               1/1     Running   0          4h2m
    pod/instana-zookeeper-2                                               1/1     Running   0          4h2m
    
    NAME                                                               TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                                        AGE
    service/chi-instana-local-0-0                                      ClusterIP      None            <none>          9000/TCP,8123/TCP,9009/TCP                     8m16s
    service/chi-instana-local-0-1                                      ClusterIP      None            <none>          9000/TCP,8123/TCP,9009/TCP                     7m35s
    service/clickhouse-instana                                         LoadBalancer   192.168.1.167   35.246.237.19   8123:32714/TCP,9000:31317/TCP                  8m11s
    service/clickhouse-operator-altinity-clickhouse-operator-metrics   ClusterIP      192.168.1.136   <none>          8888/TCP                                       70m
    service/instana-zookeeper-admin-server                             ClusterIP      192.168.1.126   <none>          8080/TCP                                       4h3m
    service/instana-zookeeper-client                                   ClusterIP      192.168.1.13    <none>          2181/TCP                                       4h3m
    service/instana-zookeeper-headless                                 ClusterIP      None            <none>          2181/TCP,2888/TCP,3888/TCP,7000/TCP,8080/TCP   4h3m
    
    NAME                                                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/clickhouse-operator-altinity-clickhouse-operator   1/1     1            1           70m
    
    NAME                                                                          DESIRED   CURRENT   READY   AGE
    replicaset.apps/clickhouse-operator-altinity-clickhouse-operator-86b5f9b579   1         1         1       70m
    
    NAME                                     READY   AGE
    statefulset.apps/chi-instana-local-0-0   1/1     8m50s
    statefulset.apps/chi-instana-local-0-1   1/1     8m9s
    statefulset.apps/instana-zookeeper       3/3     4h3m
     
  5. Assicurati che i pod siano pianificati sui nodi desiderati.

    kubectl get pods -n instana-clickhouse -o wide
     

    Di seguito è riportato un esempio di risultato.

    chi-instana-local-0-0-0                                       2/2     Running   0               21d   10.254.20.145   worker0.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    chi-instana-local-0-1-0                                       2/2     Running   0               21d   10.254.20.146   worker0.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    clickhouse-operator-ibm-clickhouse-operator-fb58dff68-np54g   1/1     Running   0               21d   10.254.20.143   worker0.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-zookeeper-0                                           1/1     Running   0               21d   10.254.20.141   worker1.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-zookeeper-1                                           1/1     Running   0               21d   10.254.16.105   worker2.instana-odf5.cp.fyre.ibm.com   <none>           <none>
    instana-zookeeper-2                                           1/1     Running   0               21d   10.254.24.75    worker3.instana-odf5.cp.fyre.ibm.com   <none>           <none>