GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit a spustit Kafka na Kubernetes

Co je Apache Kafka?

Kafka je systém pro zasílání zpráv, který shromažďuje a zpracovává rozsáhlé množství dat v reálném čase, což z něj činí zásadní integrační komponentu pro aplikace běžící v clusteru Kubernetes. Efektivitu aplikací nasazených v clusteru lze dále zvýšit platformou pro streamování událostí, jako je Apache Kafka .

Tento podrobný návod vám ukáže, jak nakonfigurovat server Kafka v clusteru Kubernetes.

Jak Apache Kafka funguje?

Apache Kafka je založen na modelu publikování a odběru:

  1. Producenti vytvářet zprávy a publikovat je do témat .
  2. Kafka kategorizuje zprávy do témat a ukládá je tak, aby byly neměnné.
  3. Spotřebitelé se přihlásí k odběru konkrétního tématu a absorbovat zprávy poskytnuté producenty.

Producenti a spotřebitelé v tomto kontextu představují aplikace, které vytvářejí zprávy řízené událostmi, a aplikace, které tyto zprávy spotřebovávají. Zprávy jsou uloženy u Kafka brokerů a jsou seřazeny podle uživatelsky definovaných témat .

Zookeeper je nepostradatelnou součástí konfigurace Kafka. Koordinuje producenty Kafky, makléře, spotřebitele a členství v klastrech.

Nasadit Zookeeper

Kafka nemůže fungovat bez Zookeeper. Služba Kafka se restartuje, dokud není zjištěno funkční nasazení Zookeeper.

Nasaďte Zookeeper předem vytvořením souboru YAML zookeeper.yml . Tento soubor spustí službu a nasazení, které naplánují moduly Zookeeper na clusteru Kubernetes.

Pomocí preferovaného textového editoru přidejte do zookeeper.yml následující pole :

apiVersion: v1
kind: Service
metadata:
  name: zk-s
  labels:
    app: zk-1
spec:
  ports:
  - name: client
    port: 2181
    protocol: TCP
  - name: follower
    port: 2888
    protocol: TCP
  - name: leader
    port: 3888
    protocol: TCP
  selector:
    app: zk-1
    ---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: zk-deployment-1
spec:
  template:
    metadata:
      labels:
        app: zk-1
    spec:
      containers:
      - name: zk1
        image: bitnami/zookeeper
        ports:
        - containerPort: 2181
        env:
        - name: ZOOKEEPER_ID
          value: "1"
        - name: ZOOKEEPER_SERVER_1
          value: zk1

Spuštěním následujícího příkazu na clusteru Kubernetes vytvořte definiční soubor:

kubectl create -f zookeeper.yml

Vytvořit službu Kafka

Nyní potřebujeme vytvořit definiční soubor služby Kafka. Tento soubor spravuje nasazení Kafka Broker pomocí vyrovnávání zátěže nových modulů Kafka. Základní kafka-service.yml soubor obsahuje následující prvky:

 apiVersion: v1 
 kind: Service 
 metadata:  
   labels:  
     app: kafkaApp 
   name: kafka
 spec:  
   ports:  
     -  
       port: 9092 
       targetPort: 9092
      protocol: TCP
     -  
       port: 2181 
       targetPort: 2181 
   selector:  
     app: kafkaApp 
   type: LoadBalancer

Po uložení souboru vytvořte službu zadáním následujícího příkazu:

kubectl create -f kafka-service.yml

Definujte řadič replikace Kafka

Vytvořte další .yml soubor, který bude sloužit jako řadič replikace pro Kafka. Soubor řadiče replikace, v našem příkladu kafka-repcon.yml, obsahuje následující pole:

---  
 apiVersion: v1 
 kind: ReplicationController 
 metadata:  
   labels:  
     app: kafkaApp 
   name: kafka-repcon 
 spec:  
   replicas: 1
   selector:  
     app: kafkaApp 
   template:  
     metadata:  
       labels:  
         app: kafkaApp 
     spec:  
       containers:  
-
           command:  
             - zookeeper-server-start.sh 
             - /config/zookeeper.properties 
           image: "wurstmeister/kafka" 
           name: zk1 
           ports:  
             -  
               containerPort: 2181

Uložte soubor definice řadiče replikace a vytvořte jej pomocí následujícího příkazu:

kubectl create -f kafka-repcon.yml

Spusťte server Kafka

Vlastnosti konfigurace pro server Kafka jsou definovány v config/server.properties soubor. Protože jsme již nakonfigurovali server Zookeeper, spusťte server Kafka pomocí:

kafka-server-start.sh config/server.properties

Jak vytvořit téma Kafka

Kafka má nástroj příkazového řádku s názvem kafka-topics.sh . Tento nástroj použijte k vytváření témat na serveru. Otevřete nové okno terminálu a zadejte:

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Topic-Name

Vytvořili jsme téma s názvem Název tématu s jedním oddílem a jednou replikou instance.

Jak začít s producentem Kafka

Soubor config/server.properties soubor obsahuje ID portu brokera. Broker v příkladu naslouchá na portu 9092. Naslouchací port je možné zadat přímo pomocí příkazového řádku:

kafka-console-producer.sh --topic kafka-on-kubernetes --broker-list localhost:9092 --topic Topic-Name 

Nyní použijte terminál k přidání několika řádků zpráv.

Jak začít se zákazníkem Kafka

Stejně jako u vlastností Producer jsou výchozí nastavení spotřebitele specifikována v config/consumer.properties soubor. Otevřete nové okno terminálu a zadejte příkaz pro příjem zpráv:

kafka-console-consumer.sh --topic Topic-Name --from-beginning --zookeeper localhost:2181 

--from-beginning příkaz vypisuje zprávy chronologicky. Nyní můžete zadávat zprávy z terminálu výrobce a vidět je, jak se zobrazují v terminálu spotřebitele.

Jak škálovat Kafkův cluster

Použijte příkazový terminál a přímo spravujte Kafka Cluster pomocí kubectl . Zadejte následující příkaz a rychle škálujte svůj Kafka cluster zvýšením počtu modulů z jednoho (1) na šest (6):

kubectl scale rc kafka-rc --replicas=6

Cent OS
  1. Jak nainstalovat a spustit Python na CentOS 8

  2. Jak nainstalovat a nastavit mysql 8 na Ubuntu 20.04

  3. Jak nastavit nebo změnit časové pásmo na Ubuntu 20.04 a 21.04

  1. Jak nasadit a spustit Redis v Dockeru

  2. Jak nastavit Kubernetes Cluster pomocí Rancher

  3. Jak zkompilovat a spustit program C v Ubuntu

  1. Co je to hezké jméno hostitele a jak jej nastavit

  2. Jak spustit MongoDB na Kubernetes

  3. Co je Kubernetes DaemonSet a jak jej používat?