Instale e implemente ByConity en la nube del clúster de Kubennetes

Comprenda la implementación rápida de ByConity en un artículo

Prefacio

ByConity es el sistema de almacenamiento de datos de código abierto de ByConity para pilas de datos modernas. Aplica una gran cantidad de tecnologías de bases de datos maduras, como motor de almacenamiento de columnas, ejecución MPP, optimización inteligente de consultas, ejecución de vectorización, Codegen, indexación y compresión de datos. Es adecuado para escenarios de procesamiento analítico en línea (OLAP) y escenarios de almacenamiento de datos con carga ligera, incluidos, entre otros, análisis interactivo, monitoreo de aplicaciones en tiempo real, procesamiento y análisis de datos de flujo, etc.

A continuación presentamos cómo implementar y ejecutar ByConity en la red pública a través de gráficos y texto detallados.

Configurar la implementación

2.1 Preparación de recursos

Según recomendaciones oficiales, en un entorno de prueba.

Utilice la versión del sistema operativo: Centos8.2 y utilice la fuente yum de la red pública

En las especificaciones de hardware, los discos locales del Trabajador y del Servidor se utilizan principalmente para almacenar datos temporales y archivos de registro durante la escritura. Al mismo tiempo, el disco local del Trabajador también almacena el caché de datos. Por lo tanto, el tamaño del El disco debe basarse en el tamaño de DiskCache configurado y la escritura está determinada por la cantidad de datos.

Mi implementación se muestra a continuación, para cumplir con los requisitos de rendimiento de cada componente.

Nombre del componente UPC Memoria disco duro red Número de instancias
TSO 1 1G 5G Gigabit Ethernet 1
Servidor 8 32G 100 GRAMOS Gigabit Ethernet 1
Obrero 4 16G 110G Gigabit Ethernet 1
Administrador de demonios 1 2G 40G Gigabit Ethernet 1
Administrador de recursos 1 2G 40G Gigabit Ethernet 1

Todos los recursos de la nube se implementan en Huawei Cloud

imagen-20230925000358484

2.2 Configuración básica del servidor

2.2.1 Instalar y configurar kubectl en el entorno local

kubectl es una herramienta de línea de comandos de Kubernetes que puede comunicarse con un clúster de Kubernetes a través de una interfaz de línea de comandos o un script y realizar diversas operaciones, que incluyen:

  1. Implementar y administrar aplicaciones: kubectl puede usar archivos YAML o JSON para definir y crear objetos de recursos de Kubernetes, como implementaciones, servicios, Pods, conjuntos de réplicas, mapas de configuración, etc. Puede utilizar kubectl para crear, actualizar, eliminar y ver estos recursos, así como monitorear su estado y registros.
  2. Expanda y administre el clúster: kubectl puede administrar varios componentes del clúster de Kubernetes a través de la línea de comando, como nodos, espacios de nombres, volúmenes de almacenamiento, cuentas de servicio, etc. Puede usar kubectl para expandir el tamaño de su clúster, agregar o eliminar nodos y realizar operaciones relacionadas con la administración del clúster.
  3. Depuración y solución de problemas: kubectl proporciona varios comandos y opciones para diagnosticar y depurar problemas en los clústeres de Kubernetes. Puede ver los registros del Pod, ejecutar comandos que ingresan al contenedor, obtener eventos del clúster, etc.
  4. Monitoreo y ajuste de recursos: kubectl se puede usar para ver el estado de los clústeres y recursos de Kubernetes, monitorear el uso de recursos, expandir o reducir la cantidad de copias de recursos, etc.

kubectl proporciona potentes funciones y flexibilidad para gestionar y operar de forma eficaz los clústeres de Kubernetes.

Descargue la última versión con el siguiente comando:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

Descargue el archivo de suma de comprobación de kubectl:

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

Verifique el archivo ejecutable de kubectl según el archivo de suma de comprobación:

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

Cuando pasa la verificación, el resultado es:

kubectl: OK

Cuando la verificación falla, sha256 saldrá con un valor distinto de cero e imprimirá el siguiente resultado:

kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

Instalar kubectl

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

Realice pruebas para asegurarse de que la versión instalada esté actualizada:

kubectl version --client

Para que kubectl descubra y acceda al clúster de Kubernetes, necesita un archivo kubeconfig, que se genera automáticamente cuando kube-up.sh crea el clúster o implementa con éxito un clúster de Minikube. Normalmente, la información de configuración de kubectl se almacena en el archivo ~/.kube/config.

Compruebe si kubectl está configurado correctamente obteniendo el estado del clúster:

kubectl cluster-info

Si se devuelve una URL, significa que kubectl accedió exitosamente al clúster.

2.2.2 Instalar helm en el entorno local

Helm utiliza un formato de empaquetado llamado gráfico. Un gráfico es una colección de archivos que describen un conjunto relacionado de recursos de Kubernetes. Se puede usar un solo gráfico para implementar algo simple, como un módulo Memcached, o algo complejo, como una pila de aplicaciones web completa con servidor HTTP, base de datos, caché, etc.

Los gráficos se crean creando archivos en un árbol de directorios específico, empaquetándolos en paquetes comprimidos versionados y luego implementándolos.

Helm tiene un script de instalación que extrae automáticamente la última versión de Helm y la instala localmente.

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
 ./get_helm.sh

Si desea realizar la instalación directamente, ejecute

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
2.2.3 Instalar kind y Docker
2.2.3.1 tipo de instalación

Kind, la abreviatura de Kubernetes-in-docker, es una herramienta que utiliza contenedores Docker como "nodos" para implementar entornos de clúster K8S. La herramienta Kind se utiliza principalmente para probar el propio Kubernetes. Actualmente, muchos proyectos que deben implementarse en el entorno de Kubernetes para realizar pruebas optarán por utilizar Kind para crear rápidamente un entorno de Kubernetes en el proceso de CI y luego ejecutar los casos de prueba relevantes. luego elimínelos.

Ingrese el siguiente comando para instalar kind

curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.9.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind
2.2.3.2 Instalación de Docker

Instalar Docker-ce

yum clean all yum makecache fastyum -y install docker-ce

Inicie el servicio a través de systemctl

systemctl start docker

3. Clúster local de Kubernetes

3.1 Utilice Kind para configurar un clúster de Kubernetes local

Guardar código localmente

git clone [email protected]:ByConity/byconity-deploy.git
cd byconity-deploy

imagen-20230925011431614

Cree un clúster de Kubernetes de 1 plano de control y 3 trabajadores. .

kind create cluster --config examples/kind/kind-byconity.yaml

imagen-20230925011741975

Pruebe para asegurarse de que su grupo de tipos local esté listo:

kubectl cluster-info

imagen-20230925011803850

3.2 Inicializar el clúster de demostración de Byconity

# Install with fdb CRD first
helm upgrade --install --create-namespace --namespace byconity -f ./examples/kind/values-kind.yaml byconity ./chart/byconity --set fdb.enabled=false

# Install with fdb cluster
helm upgrade --install --create-namespace --namespace byconity -f ./examples/kind/values-kind.yaml byconity ./chart/byconity

imagen-20230925011935150

Espere hasta que todos los Pods estén listos.

kubectl -n byconity get po

imagen-20230925012009282

realizar pruebas

kubectl -n byconity exec -it sts/byconity-server -- bash
root@byconity-server-0:/# clickhouse client

172.16.1.1 :)

ejecutar sql

CREATE DATABASE IF NOT EXISTS test;
USE test;
DROP TABLE IF EXISTS test.lc;
CREATE TABLE test.lc (b LowCardinality(String)) engine=CnchMergeTree ORDER BY b;
INSERT INTO test.lc SELECT '0123456789' FROM numbers(100000000);
SELECT count(), b FROM test.lc group by b;
DROP TABLE IF EXISTS test.lc;
DROP DATABASE test;

4. Evaluación de ByConity

ByConity es un almacén de datos construido sobre ClickHouse diseñado para cambios modernos en la arquitectura de la nube. Adopta un diseño de arquitectura nativa de la nube para satisfacer las necesidades de los usuarios del almacén de datos en cuanto a expansión flexible, separación de lectura y escritura, aislamiento de recursos y una sólida coherencia de los datos. Al mismo tiempo, proporciona un excelente rendimiento de consulta y escritura. Adopta una gran cantidad de tecnologías OLAP maduras, como motor de almacenamiento de columnas, ejecución MPP, optimización inteligente de consultas, ejecución de vectorización, Codegen, indexación y compresión de datos; también realiza innovaciones técnicas especiales para escenarios de nube y arquitectura de separación informática y de almacenamiento.

Existe una variedad de métodos de implementación generales para satisfacer las necesidades de diferentes usuarios. La implementación no es relativamente complicada y vale la pena recomendarla.

Supongo que te gusta

Origin blog.csdn.net/qq_43475285/article/details/133191377
Recomendado
Clasificación