
# 在CCE集群中部署使用ClickHouse
ClickHouse是一款用于联机分析（OLAP）的列式数据库管理系统，适用于处理大规模数据集的实时查询和分析。ClickHouse容器化部署方式主要有4种，具体请参见[表1]。ClickHouse Operator是在Kubernetes上部署和管理ClickHouse集群的工具，它具备复制集群、管理用户与配置文件以及处理数据持久化的存储卷等功能。这些功能共同简化了应用程序的配置、管理和监控工作。
 表1ClickHouse容器化部署方式 
| 部署方式               | 部署方便程度 | 管理方便程度 |
|:---|:---|:---|
| Kubectl原生部署        | 难      | 难      |
| Kubectl+Operator部署 | 中      | 中      |
| Helm部署             | 易      | 难      |
| Helm+Operator部署    | 易      | 易      |
   
下面将介绍在CCE集群中如何利用Kubectl+Operator方式部署ClickHouse，参考文档：<https://github.com/Altinity/clickhouse-operator>。
#### 前提条件
- 已创建一个集群，且集群有可用节点，具体操作步骤请参见[购买Standard/Turbo集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
- 集群内节点已绑定弹性公网IP，且已配置kubectl命令行工具，具体请参见[将弹性公网IP绑定至实例](https://support.huaweicloud.com/usermanual-eip/eip_0009.html)和[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)。
 
#### 部署ClickHouse的基本步骤
以1.29版本CCE Turbo集群为例部署ClickHouse，集群的相关参数请参见[表2]。
 表2集群部分参数配置 
| 集群参数   | 参数值         |
|:---|:---|
| 集群类型   | CCE Turbo集群 |
| 集群版本   | 1.29        |
| Region | 上海一         |
| 容器运行时  | Containerd  |
| 网络模型   | 云原生网络2.0    |
| 服务转发模式 | iptables    |
   
1. 创建ClickHouse Operator。 
   1. 下载官方提供yaml文件"clickhouse-operator-install-bundle.yaml"创建ClickHouse Operator，其中clickhouse-operator-install-bundle.yaml来源于<https://github.com/Altinity/clickhouse-operator/blob/master/deploy/operator/clickhouse-operator-install-bundle.yaml>。
      ![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/note_3.0-zh-cn.png)
      clickhouse-operator-install-bundle.yaml将ClickHouse Operator部署在系统命名空间kube-system中，因此ClickHouse Operator能够监控Kubernetes中所有的命名空间的相关资源。若ClickHouse Operator部署在其他命名空间中，则只会监控该特定命名空间内的资源。
      ```
      kubectl apply -f clickhouse-operator-install-bundle.yaml
      ```
      回显结果如下:
      ```
      customresourcedefinition.apiextensions.k8s.io/clickhouseinstallations.clickhouse.altinity.comcreated
      customresourcedefinition.apiextensions.k8s.io/clickhouseinstallationtemplates.clickhouse.altinity.com created
      customresourcedefinition.apiextensions.k8s.io/clickhouseoperatorconfigurations.clickhouse.altinity.com created
      ...
      ```
      
   
   2. 检查ClickHouse Operator是否创建成功。
      ```
      kubectl get pod -n kube-system | grep clickhouse
      ```
      回显结果如下，若Pod状态为Running则说明ClickHouse Operator创建成功。
      ```
      clickhouse-operator-656d67bd4d-k64gm          2/2      Running    4 (15m ago)    3d23h
      ```
      
   
   3. 通过以下命令查看集群中所有与ClickHouse相关的CRD资源。
      ```
      kubectl get crd | grep clickhouse
      ```
      回显结果如下：
      ```
      clickhouseinstallations.clickhouse.altinity.com                2024-08-20T09:30:30Z
      clickhouseinstallationtemplates.clickhouse.altinity.com        2024-08-20T09:30:30Z
      clickhousekeeperinstallations.clickhouse-keeper.altinity.com   2024-08-20T09:30:30Z
      clickhouseoperatorconfigurations.clickhouse.altinity.com       2024-08-20T09:30:30Z
      ```
      
   
   
   
   
2. 创建命名空间test-clickhouse-operator。为了方便验证测试，后续的操作都将在test-clickhouse-operator内进行。 
   ```
   kubectl create namespace test-clickhouse-operator
   ```
   
   
3. 创建ClickHouse集群。 
   1. 创建一个名为simple-01.yaml的YAML文件，其中simple-01.yaml为自定义名称。simple-01.yaml来源于<https://raw.githubusercontent.com/Altinity/clickhouse-operator/master/docs/chi-examples/01-simple-layout-01-1shard-1repl.yaml>。
      ```
      vim simple-01.yaml
      ```
      ![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/note_3.0-zh-cn.png)
      ClickHouseInstallation是一个在Kubernetes集群中使用ClickHouse Operator时定义的自定义资源对象（CR），创建或更新ClickHouseInstallation资源后，ClickHouse Operator会根据这些配置自动创建和管理相应的Kubernetes资源，如StatefulSets、Services、PersistentVolumeClaims等，以确保ClickHouse集群按照预期运行。
      文件内容如下：
      ```
      apiVersion: "clickhouse.altinity.com/v1"
      kind: "ClickHouseInstallation"
      metadata:
         name: "simple-01"
      spec:
        configuration:
          users:
            # printf 'test_password' | sha256sum
            test_user/password_sha256_hex: 10a6e6cc8311a3e2bcc09bf6c199adecd5dd59408c343e926b129c4914f3cb01
            test_user/password: test_password
            # to allow access outside from kubernetes
            test_user/networks/ip:
            - 0.0.0.0/0
          clusters:
          - name: "simple"
      ```
      利用上述文件创建ClickHouse集群。
      ```
      kubectl apply -n test-clickhouse-operator -f simple-01.yaml
      ```
      
   
   
   
   
4. 检查ClickHouse资源是否创建成功。 
   1. 查看命名空间test-clickhouse-operator的Pod资源，若Pod状态都为Running，则说明Pod创建成功。
      ```
      kubectl get pod -n test-clickhouse-operator
      ```
      回显结果如下：
      ```
      NAME                               READY   STATUS    RESTARTS      AGE
      chi-simple-01-simple-0-0-0         2/2     Running   0             3d7h
      ```
      
   
   2. 其次，查看相关的服务资源。
      ```
      kubectl get service -n test-clickhouse-operator
      ```
      回显结果如下：
      ```
      NAME                         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                      AGE
      chi-simple-01-simple-0-0     ClusterIP   None          <none>        9000/TCP,8123/TCP,9009/TCP   3d7h
      clickhouse-simple-01         ClusterIP   None          <none>        9000/TCP,8123/TCP            3d8h
      ```
      
   
   
   
   
5. 连接ClickHouse DataBase。 
   ```
   kubectl -n test-clickhouse-operator exec -ti chi-simple-01-simple-0-0-0 -- clickhouse-client
   ```
   若回显结果如下，则说明连接成功。输入"exit"，按下回车键，可退出ClickHouse DataBase。
   ```
   ClickHouse client version 24.8.2.3 (official build).
   Connecting to localhost:9000 as user default.
   Connected to ClickHouse server version 24.8.2.
   Warnings:
    * Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enabled
   chi-simple-01-simple-0-0-0.chi-simple-01-simple-0-0.test-clickhouse-operator.svc.cluster.local :)
   ```
   
   
6. ClickHouse集群资源清理。 
   利用以下命令删除上述ClickHouse集群。
   ```
   kubectl delete -f simple-01.yaml -n test-clickhouse-operator
   ```
   回显结果如下：
   ```
   clickhouseinstallation.clickhouse.altinity.com "simple-01" deleted
   ```
   
   
 
#### 示例1：创建绑定持久化存储的ClickHouse集群
本节将为您介绍如何创建绑定持久化存储的ClickHouse集群。以云硬盘存储卷为例，介绍如何使用动态挂载的方式为ClickHouse集群提供持久化存储。
![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/notice_3.0-zh-cn.png)
动态挂载（VolumeClaimTemplate）仅支持挂载云硬盘存储和本地持久卷，并且仅有状态工作负载支持动态挂载。
1. 创建存储类（StorageClass）。 
   1. 创建一个名为csi-disk-ssd.yaml的YAML文件，其中csi-disk-ssd.yaml为自定义名称。
      ```
      vim csi-disk-ssd.yaml
      ```
      文件内容如下，CCE默认支持的SAS类型的云硬盘。 若想使用其他类型的云硬盘，需要创建对应的StorageClass，StorageClass部分参数说明请参见[表3]。
      ```
      allowVolumeExpansion: true
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        name: csi-disk-ssd
      provisioner: everest-csi-provisioner
      parameters:
        csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
        csi.storage.k8s.io/fstype: ext4
        everest.io/disk-volume-type: SSD
        everest.io/passthrough: "true"
      reclaimPolicy: Delete
      volumeBindingMode: Immediate
      ```
       表3StorageClass部分参数说明 
      | 参数                | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      |:---|:---|
      | provisioner       | 存储资源提供商，CCE均由everest插件提供，此处只能填写everest-csi-provisioner。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      | parameters        | 存储参数，不同类型的存储支持的参数不同。详情请参见[parameters参数说明](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00281.html#:~:text=PV操作失败。-,表2 parameters参数说明,-存储类型)。 须知： everest.io/disk-volume-type表示云盘类型，有多种选择。 - SAS：高I/O。  - SSD：超高I/O。  - GPSSD：通用型SSD。  - ESSD：极速型SSD。  - GPSSD2：通用型SSD v2，everest版本为2.4.4及以上支持使用，使用时需同时指定everest.io/disk-iops和everest.io/disk-throughput注解。  - ESSD2：极速型SSD v2，everest版本为2.4.4及以上支持使用，使用时需指定everest.io/disk-iops注解。   默认类型：SAS。 |
      | reclaimPolicy     | 用来指定创建PV的persistentVolumeReclaimPolicy字段值，支持Delete和Retain。如果StorageClass对象被创建时没有指定reclaimPolicy，它将默认为Delete。 - Delete：表示动态创建的PV，在PVC销毁的时候PV也会自动销毁。  - Retain：表示动态创建的PV，在PVC销毁的时候PV不会自动销毁。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      | volumeBindingMode | 表示卷绑定模式，即动态创建PV的时间，分为立即创建和延迟创建。 - Immediate：创建PVC时完成PV绑定和动态创建。  - WaitForFirstConsumer：延迟PV的绑定和创建，当在工作负载中使用该PVC时才执行PV创建和绑定流程。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
         
      
   
   2. 根据csi-disk-ssd.yaml，创建名为csi-disk-ssd的StorageClass。
      ```
      kubectl create -f csi-disk-ssd.yaml
      ```
      
   
   
   
   
2. 创建绑定持久化存储的ClickHouse集群。 
   1. 创建一个名为pv-simple.yaml的YAML文件，其中pv-simple.yaml为自定义名称。
      ```
      vim pv-simple.yaml
      ```
      文件内容如下，参考<https://github.com/Altinity/clickhouse-operator/blob/master/docs/chi-examples/03-persistent-volume-01-default-volume.yaml>。
      ![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/notice_3.0-zh-cn.png)
      云硬盘存储卷只支持单个节点读写的访问模式，即accessModes需设置为ReadWriteOnce。
      ```
      apiVersion: "clickhouse.altinity.com/v1"
      kind: "ClickHouseInstallation"
      metadata:
        name: "pv-simple"
        namespace: test-clickhouse-operator
      spec:
        defaults:
          templates:
            dataVolumeClaimTemplate: data-volume-template
            logVolumeClaimTemplate: log-volume-template
        configuration:
          clusters:
            - name: "simple"
              layout:
                shardsCount: 1
                replicasCount: 1
        templates:
          volumeClaimTemplates:                   # 动态挂载
            - name: data-volume-template          # 定义数据存储卷的模板
              spec:
                accessModes:
                  - ReadWriteOnce                 # 云硬盘存储卷只支持单个节点读写的访问模式，即ReadWriteOnce
                resources:
                  requests:
                    storage: 10Gi
                storageClassName: csi-disk-ssd    # 指定使用的存储类为新建的csi-disk-ssd 
            - name: log-volume-template           # 定义的日志存储卷的模板
              spec:
                accessModes:
                  - ReadWriteOnce                 # 云硬盘存储卷只支持单个节点读写的访问模式，即ReadWriteOnce
                resources:
                  requests:
                    storage: 10Gi
                storageClassName: csi-disk-ssd    # 指定使用的存储类为新建的csi-disk-ssd
      ```
      
   
   2. 利用pv-simple.yaml创建ClickHouse集群。
      ```
      kubectl -n test-clickhouse-operator create -f pv-simple.yaml
      ```
      
   
   
   
   
3. 检查ClickHouse资源是否创建成功，以及是否成功挂载持久化存储。 
   1. 查看命名空间test-clickhouse-operator的Pod资源，若Pod状态都为Running，则说明Pod创建成功。
      ```
      kubectl get pod -n test-clickhouse-operator
      ```
      回显结果如下，则说明Pod创建成功。
      ```
      NAME                            READY   STATUS    RESTARTS   AGE
      chi-pv-simple-simple-0-0-0      2/2     Running   0          5m2s
      chi-simple-01-simple-0-0-0      1/1     Running   0          3d7h
      ```
      
   
   2. 查看名为data-volume-template和log-volume-template的PVC是否创建成功。
      ```
      kubectl get pvc -n test-clickhouse-operator
      ```
      回显结果如下，STATUS为Bound则说明PVC绑定成功。
      ```
      NAME                                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
      data-volume-template-chi-pv-simple-simple-0-0-0   Bound    pvc-981b1d73-a13e-41d5-aade-ea8c6b1199d7   10Gi       RWO            csi-disk-ssd   <unset>                 28s
      log-volume-template-chi-pv-simple-simple-0-0-0    Bound    pvc-fcf70a2e-131d-4da1-a9c2-eddd89887b45   10Gi       RWO            csi-disk-ssd   <unset>                 28s
      ```
      
   
   3. 检查存储卷挂载情况。 首先，进入chi-pv-simple-simple-0-0-0容器的命令行界面。
      ```
      kubectl -n test-clickhouse-operator exec -ti chi-pv-simple-simple-0-0-0 -c clickhouse bash
      ```
      其次，输入以下命令查看存储卷挂载情况。
      ```
      df -h
      ```
      由回显结果可知，相关存储卷已挂载至ClickHouse集群。Ctrl+D可退出当前命令行界面。
      ```
      Filesystem                    Size    Used   Avail  Use% Mounted on
      overlay                        99G    5.1G     89G    6% /
      tmpfs                          64M       0     64M    0% /dev
      tmpfs                          3.9G      0    3.9G    0% /sys/fs/cgroup
      /dev/mapper/vgpaas-share       99G    5.1G     89G    6% /etc/hosts
      shm                            64M       0     64M    0% /dev/shm
      /dev/sdb                       9.8G    66M    9.8G    1% /var/lib/clickhouse
      /dev/sda                       9.8G    37M    9.8G    1% /var/log/clickhouse-server
      tmpfs                          6.3G     12K    6.3G   1% /run/secrets/kubernetes.io/serviceaccount
      tmpfs                          3.9G       0    3.9G   0% /proc/acpi
      tmpfs                          3.9G       0    3.9G   0% /proc/scsi
      tmpfs                          3.9G       0    3.9G   0% /sys/firmware
      ```
      
   
   
   
   
4. 连接ClickHouse Database。 
   ```
   kubectl -n test-clickhouse-operator exec -ti chi-pv-simple-simple-0-0-0 -- clickhouse-client
   ```
   回显结果如下，则说明连接ClickHouse Database成功。输入"exit"，按下回车键，可退出ClickHouse DataBase。
   ```
   Defaulted container "clickhouse" out of: clickhouse, clickhouse-log
   ClickHouse client version 24.8.2.3 (official build).
   Connecting to localhost:9000 as user default.
   Connected to ClickHouse server version 24.8.2.
   Warnings:
    * Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enabled
   chi-pv-simple-simple-0-0-0.chi-pv-simple-simple-0-0.test-clickhouse-operator.svc.cluster.local :)
   ```
   
   
5. ClickHouse集群资源清理。 
   利用以下命令删除上述ClickHouse集群，即绑定持久化存储的ClickHouse集群。
   ```
   kubectl delete -f pv-simple.yaml -n test-clickhouse-operator
   ```
   回显结果如下：
   ```
   clickhouseinstallation.clickhouse.altinity.com "pv-simple" deleted
   ```
   
   
#### 示例2：创建挂载负载均衡类型服务的ClickHouse集群
本节将为您介绍如何创建挂载负载均衡类型服务的ClickHouse集群，挂载负载均衡类型服务可以帮助您从公网访问ClickHouse集群。
1. 创建挂载负载均衡类型服务的ClickHouse集群，方便您从公网访问ClickHouse集群。 
   1. 创建一个名为elb.yaml的YAML文件，其中elb.yaml为自定义名称。
      ```
      vim elb.yaml
      ```
      文件内容如下，annotations kubernetes.io/elb.autocreate部分参数请参见[表4]。
      ```
      apiVersion: "clickhouse.altinity.com/v1"
      kind: "ClickHouseInstallation"
      metadata:
        name: "ck-elb"
        namespace: test-clickhouse-operator
      spec:
        defaults:
          templates:
            dataVolumeClaimTemplate: data-volume-nas                    
            serviceTemplate: chi-service-elb                        
        configuration:
          clusters:
            - name: "ck-elb"
              templates:
                podTemplate: pod-template-with-nas
              layout:
                shardsCount: 1
                replicasCount: 1
        templates:
          podTemplates:
            - name: pod-template-with-nas
              spec:
                containers:
                  - name: clickhouse
                    image: clickhouse/clickhouse-server:23.8
                    volumeMounts:
                      - name: data-volume-nas
                        mountPath: /var/lib/clickhouse
          volumeClaimTemplates:               # 数据卷声明模板，指定存储访问模式、请求的存储的大小和存储类
            - name: data-volume-nas
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 20Gi
                storageClassName: csi-disk-ssd
          serviceTemplates:                  # 服务模板
            - name: chi-service-elb 
              metadata:
                annotations:
                  # 表示负载均衡器类型，union（默认值）-共享型负载均衡，performance-独享型负载均衡
                  kubernetes.io/elb.class: union   
                  # 自动创建Ingress关联的ELB，定义用于配置负载均衡器的相关参数
                  kubernetes.io/elb.autocreate: >-                             
                    {"type":"public","bandwidth_name":"cce-bandwidth-ck","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp"}
              spec:
                ports:
                  - name: http
                    port: 8123
                  - name: client
                    port: 9000
                type: LoadBalancer             # 服务类型被设置为负载均衡器
      ```
       表4kubernetes.io/elb.autocreate部分参数说明 
      | 参数                   | 是否必填      | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      |:---|:---|:---|:---|
      | type                 | 否         | String  | 负载均衡实例网络类型，公网或者私网。 - public ：公网型负载均衡。  - inner ：私网型负载均衡。   默认类型：inner。                                                                                                                                                                                                                                              |
      | bandwidth_name       | 公网型负载均衡必填 | String  | 带宽的名称，默认值为：cce-bandwidth-\*\*\*\*\*\*。 取值范围：只能由中文、英文字母、数字、下划线、中划线、点组成，且长度范围为1-64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
      | bandwidth_chargemode | 否         | String  | 带宽付费模式。 - bandwidth ：按带宽计费。  - traffic ：按流量计费。   默认类型：bandwidth。                                                                                                                                                                                                                                                      |
      | bandwidth_size       | 公网型负载均衡必填 | Integer | 带宽大小，默认1Mbit/s\~2000Mbit/s，请根据Region带宽支持范围设置。 调整带宽时的最小单位会根据带宽范围不同存在差异。 - 小于等于300Mbit/s：默认最小单位为1Mbit/s。  - 大于300Mbit/s且小于等于1000Mbit/s：默认最小单位为50Mbit/s。  - 大于1000Mbit/s：默认最小单位为500Mbit/s。   |
      | bandwidth_sharetype  | 公网型负载均衡必填 | String  | 带宽共享方式，PER表示独享带宽。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      | eip_type             | 公网型负载均衡必填 | String  | 弹性公网IP类型。 - 5_telcom：电信。  - 5_union：联通。  - 5_bgp：全动态BGP。  - 5_sbgp：静态BGP。   具体类型以各区域配置为准，详情请参见弹性公网IP控制台。                                            |
         
      
   
   2. 根据elb.yaml创建ClickHouse集群。
      ```
      kubectl create -f elb.yaml -n test-clickhouse-operator
      ```
      
   
   
   
   
2. 检查ClickHouse资源是否创建成功，以及是否成功挂载负载均衡类型服务。 
   1. 查看命名空间test-clickhouse-operator的Pod资源，若Pod状态都为Running，则说明Pod创建成功。
      ```
      kubectl get pod -n test-clickhouse-operator
      ```
      回显结果如下，则说明ClickHouseInstallation创建成功。
      ```
      NAME                            READY   STATUS    RESTARTS   AGE
      chi-ck-elb-ck-elb-0-0-0         1/1     Running   0          3m4s
      chi-pv-simple-simple-0-0-0      2/2     Running   0          33m
      chi-simple-01-simple-0-0-0      1/1     Running   0          3d7h
      ```
      
   
   2. 利用以下命令查看负载均衡服务是否创建成功。
      ```
      kubectl get svc -n test-clickhouse-operator
      ```
      回显结果如下，则说明创建成功。
      ```
      NAME                          TYPE          CLUSTER-IP     EXTERNAL-IP    PORT(S)                          AGE
      chi-ck-elb-ck-elb-0-0         ClusterIP     None           <none>         9000/TCP,8123/TCP,9009/TCP       2s
      chi-pv-simple-simple-0-0      ClusterIP     None           <none>         9000/TCP,8123/TCP,9009/TCP       35m
      chi-simple-01-simple-0-0      ClusterIP     None           <none>         9000/TCP,8123/TCP,9009/TCP       38m
      clickhouse-pv-simple          ClusterIP     None           <none>         8123/TCP,9000/TCP                35m
      clickhouse-simple-01          ClusterIP     None           <none>         8123/TCP,9000/TCP                3d7h
      ```
      
   
   
   
   
3. 连接ClickHouse Database。 
   ```
   kubectl -n test-clickhouse-operator exec -ti chi-ck-elb-ck-elb-0-0-0 -- clickhouse-client
   ```
   回显结果如下，则说明连接ClickHouse Database成功。输入"exit"，按下回车键，可退出ClickHouse DataBase。
   ```
   ClickHouse client version 23.8.16.16 (official build).
   Connecting to localhost:9000 as user default.
   Connected to ClickHouse server version 23.8.16 revision 54465.
   Warnings:
    * Linux transparent hugepages are set to "always". Check /sys/kernel/mm/transparent_hugepage/enabled
   chi-ck-elb-ck-elb-0-0-0.chi-ck-elb-ck-elb-0-0.test-clickhouse-operator.svc.cluster.local :)
   ```
   
   
4. ClickHouse集群资源清理。 
   利用以下命令删除上述ClickHouse集群，即挂载负载均衡类型服务的ClickHouse集群。
   ```
   kubectl delete -f elb.yaml  -n test-clickhouse-operator
   ```
   回显结果如下：
   ```
   clickhouseinstallation.clickhouse.altinity.com "ck-elb1" deleted
   ```
   
   
#### 后续步骤：ClickHouse其他资源清理。
1. 利用以下命令删除命名空间test-clickhouse-operator。
   ```
   kubectl delete namespace test-clickhouse-operator
   ```
   回显结果如下：
   ```
   namespace "test-clickhouse-operator" deleted
   ```
   
2. 利用以下命令删除ClickHouse Operator。
   ```
   kubectl delete -f clickhouse-operator-install-bundle.yaml
   ```
   回显结果如下：
   ```
   customresourcedefinition.apiextensions.k8s.io "clickhouseinstallations.clickhouse.altinity.com" deleted
   customresourcedefinition.apiextensions.k8s.io "clickhouseinstallationtemplates.clickhouse.altinity.com" deleted
   customresourcedefinition.apiextensions.k8s.io "clickhouseoperatorconfigurations.clickhouse.altinity.com" deleted
   customresourcedefinition.apiextensions.k8s.io "clickhousekeeperinstallations.clickhouse-keeper.altinity.com" deleted
   ...
   ```
   
 
