Enter the following command to add a Helm repository:
1 2 3 4
> helm repo add tkemarket https://market-tke.tencentcloudcr.com/chartrepo/opensource-stable "tkemarket" has been added to your repositories > helm repo add bitnami https://charts.bitnami.com/bitnami "bitnami" has been added to your repositories
🔥 Tip:
The tkemarket image is not updated in time, it is recommended to use the bitnami repository.
But Bitmani is overseas, and there is a risk that it will not be connected.
Find Helm Chart kafka:
1 2 3 4 5 6
> helm search repo kafka NAME CHART VERSION APP VERSION DESCRIPTION tkemarket/kafka 11.0.0 2.5.0 Apache Kafka is a distributed streaming platform. bitnami/kafka 15.3.0 3.1.0 Apache Kafka is a distributed streaming platfor... bitnami/dataplatform-bp1 9.0.8 1.0.1 OCTO Data platform Kafka-Spark-Solr Helm Chart bitnami/dataplatform-bp2 10.0.8 1.0.1 OCTO Data platform Kafka-Spark-Elasticsearch He...
--namespace kafka --create-namespace: Installed in kafka namespace, created if there is no ns;
global.storageClass=<storageClass-name> Uses the specified storageclass
kubeVersion=<theKubeVersion> Let bitnami/kafka helm determine whether the version requirements are met, and if it is not met, it cannot be created
image.tag=3.1.0-debian-10-r22: 20220219 latest image, using full name guarantees to minimize pulling images from the Internet;
replicaCount=3: The number of kafka copies is 3
service.type=ClusterIP :create kafka service, used inside the k8s cluster, so ClusterIP will do
--set externalAccess.enabled=true --set externalAccess.service.type=LoadBalancer --set externalAccess.service.ports.external=9094 --set externalAccess.autoDiscovery.enabled=true --set serviceAccount.create=true --set rbac.create=true Create one for access outside the k8s cluster kafka-<0|1|2>-external Service (because the previous kafka replica count is 3)
persistence.enabled=true: Kafka data persistent, the directory in the container is /bitnami/kafka
logPersistence.enabled=true: Kafka logs persisted, the directory in the container is /opt/bitnami/kafka/logs
metrics.kafka.enabled=false Do not enable Kafka monitoring (Kafka monitoring collects data through.) kafka-exporter implemented)
zookeeper.enabled=true: To install Kafka, you need to install Zookeeper first
zookeeper.persistence.enabled=true: Zookeeper logs persisted, the directory in the container is:/bitnami/zookeeper
--waitThe : helm command waits for the result of creation
creating 1 resource(s) creating 12 resource(s) beginning waitfor 12 resources with timeout of 5m0s Service does not have load balancer ingress IP address: kafka/kafka-0-external ... StatefulSet is not ready: kafka/kafka-zookeeper. 0 out of 1 expected pods are ready ... StatefulSet is not ready: kafka/kafka. 0 out of 1 expected pods are ready NAME: kafka LAST DEPLOYED: Sat Feb 19 05:04:53 2022 NAMESPACE: kafka STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: kafka CHART VERSION: 15.3.0 APP VERSION: 3.1.0 --------------------------------------------------------------------------------------------- WARNING
By specifying "serviceType=LoadBalancer" and not configuring the authentication you have most likely exposed the Kafka service externally without any authentication mechanism.
For security reasons, we strongly suggest that you switch to "ClusterIP" or "NodePort". As alternative, you can also configure the Kafka authentication.
--broker-list kafka-0.kafka-headless.kafka.svc.cluster.local:9092 \ --topic test
CONSUMER: kafka-console-consumer.sh \
--bootstrap-server kafka.kafka.svc.cluster.local:9092 \ --topic test \ --from-beginning
To connect to your Kafka server from outside the cluster, follow the instructions below:
NOTE: It may take a few minutes for the LoadBalancer IPs to be available. Watch the status with: 'kubectl get svc --namespace kafka -l "app.kubernetes.io/name=kafka,app.kubernetes.io/instance=kafka,app.kubernetes.io/component=kafka,pod" -w'
Kafka Brokers domain: You will have a different external IP for each Kafka broker. You can get the list of external IPs using the command below: