clickhouse 表创建_k8s上的clickhouse集群部署并创建分布式表

本文详细介绍了如何在Kubernetes(k8s)上部署ClickHouse集群,包括创建configmap、设置Service、Pod和分布式表。重点讨论了配置文件如remote_servers.xml、zookeeper.xml和user.xml,以及创建分布式表时的注意事项和可能遇到的问题。
摘要由CSDN通过智能技术生成

部署总体参考:https://blog.csdn.net/tototuzuoquan/article/details/111305125

clickhouse的配置文件相关解读:https://www.cnblogs.com/zhoujinyi/archive/2004/01/13/12627780.html

流程简介

1. 创建configmap,data部分包含用于配置集群的remote_servers.xml、用于连接zookeeper的zookeeper.xml,这两个文件会被挂载在clickhouse的config.d目录下,然后会覆盖config.xml的相关内容; data部分还包含users.xml,用于设置用户的账号密码和可使用的内存,会覆盖到clickhouse的user.xml中。

2. 创建statefulset,docker使用yandex/clickhouse-server:19.11.3.11,通过replicas来设置副本数,要和remote_servers.xml相对应,同时设置持久化卷的挂载。

3. 创建service,在selector.app中设置第二部的statefulset,将spec.type设置为ClusterIP只在集群内使用,clusterIP设置为None,通过DNS解析service名来访问。

创建configmap

配置文件configd.yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: tt-test
  namespace: te-sp-dev
  labels:
    app: tt-test
data:
  remote_servers.xml: |-
    <yandex>
      <remote_servers incl="clickhouse_remote_servers">
        <clicks_cluster>
            <shard>
              <internal_replication>true</internal_replication>
              <replica>
                  <default_database>default</default_database>
                  <host>clickhouse-0.clickhouse</host>
                  <user>argus</user>
                  <password>root</password>
                  <port>9000</port>
              </replica>
              <replica>
                  <default_database>default</default_database>
                  <host>clickhouse-1.clickhouse</host>
                  <user>argus</user>
                  <password>root</password>
                  <port>9000</port>
              </replica>
              <replica>
                  <default_database>default</default_database>
                  <host>clickhouse-2.clickhouse</host>
                  <user>argus</user>
                  <password>root</password>
                  <port>9000</port>
              </replica>
            </shard>
        </clicks_cluster>
      </remote_servers>
      <listen_host>0.0.0.0</listen_host>
      <logger>
          <level>error</level>
          <log></log>
          <errorlog></errorlog>
          <console>1</console>
      </logger>
      <compression incl="clickhouse_compression">
          <case>
              <method>lz4</method>
          </case>
      </compression>
      <distributed_ddl>
          <path>/clickhouse/task_queue/ddl</path>
      </distributed_ddl>
      <macros replace="replace">
          <shard>shard0</shard>
          <replica>REPLICA_NAME</replica>
      </macros>
    </yandex>
  zookeeper.xml: |-
    <yandex>
      <zookeeper incl="zookeeper-servers">
        <node index="1">
            <host>kafka-zk-zk-0.kafka-zk-hs.te-retail-senselink</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>kafka-zk-zk-1.kafka-zk-hs.te-retail-senselink</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>kafka-zk-zk-2.kafka-zk-hs.te-retail-senselink</host>
            <port>2181</port>
        </node>
      </zookeeper>
    </yandex>
  users.xml: |-
    <yandex>
      <profiles>
        <writer>
          <max_memory_usage>1000000000</max_memory_usage>
          <use_uncompressed_cache>0</use_uncompr
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Kubernetes(简称K8s分布式集群部署,有多种方式可供选择。以下是一种常见的部署方式: 1. 准备集群节点:至少需要三个节点,每个节点上需要安装操作系统(如Linux),并确保节点之间可以互相通信。 2. 安装Docker:Kubernetes使用Docker容器运行应用程序,因此需要在每个节点上安装Docker。可以通过Docker官方文档提供的安装指南来进行安装。 3. 安装Kubernetes:Kubernetes有多种安装方式,其中最常用的是使用kubeadm进行安装。在其中一个节点上执行以下步骤来初始化Kubernetes集群: - 安装kubeadm、kubelet和kubectl命令行工具; - 初始化集群:使用kubeadm init命令进行集群初始化,并按照输出的指示设置网络插件(如Calico、Flannel等); - 设置kubectl配置:将kubeconfig文件复制到正确的位置,以便可以使用kubectl命令与集群进行交互。 4. 加入节点:在其他节点上执行kubeadm join命令,将它们加入到Kubernetes集群中。 5. 配置网络插件:根据之前选择的网络插件,按照相应的文档进行配置,以确保集群内的Pod之间可以正常通信。 6. 部署应用程序:通过kubectl命令或使用YAML文件部署应用程序到Kubernetes集群中。 这只是一个简单的概述,实际的部署过程会更加复杂,还需要考虑安全性、高可用性、负载均衡等因素。建议参考Kubernetes文档中关于部署和管理集群的详细指南进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值