Helm安装外部可访问Kafka集群

部署在ns-demo命名空间下

helm配置 Chart 仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add azure http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo update   # 类似 yum update

查看配置的存储库

helm repo list

helm repo remove aliyun   # 移除指定的存储库aliyun

下载 zookeeper安装包

# 先查可用的kafka版本
helm search repo zookeeper

# 下载安装包至本地
,chart的版本12.8.1(3.9.1)
helm pull bitnami/zookeeper --version=12.8.1

# 解压缩安装包
tar xf zookeeper-12.8.1.tgz

# 修改values.yaml文件
cd kafka
cp values.yaml values.yaml.bak 
vim values.yaml

#查看配置文件
grep -Ev "$^|#" values.yaml

修改values.yaml文件

vim values.yaml
extraEnvVars: 
  - name: TZ
    value: "Asia/Shanghai"
# 允许任意用户连接(默认开启),本地文件没有需要自己添加
allowAnonymousLogin: true
---
# 关闭认证(默认关闭)
auth:
  enable: false
---
# 修改副本数
replicaCount: 3
---
# 4. 配置持久化,按需使用
global:
  imageRegistry: ""
  imagePullSecrets: []
  storageClass: "managed-nfs-storage"

安装zookeeper

helm install zookeeper zookeeper/ -n ns-demo
#查看挂载状态,使用nfs作为持久化
kubectl get pvc -n ns-demo

查看 pod

kubectl describe pod -n ns-demo
kubectl get pod -n ns-demo

1、下载 kafka安装包

# 先查可用的kafka版本
helm search repo kafka

# 下载安装包至本地
,chart的版本26.8.3(3.6.1)
helm pull bitnami/kafka --version=26.8.3

# 解压缩安装包
tar xf kafka-26.8.3.tgz

# 修改values.yaml文件
cd kafka
cp values.yaml values.yaml.bak 
vim values.yaml

#查看配置文件
grep -Ev "$^|#" values.yaml

在配置文件中修改以下部分

broker:
  replicaCount: 3 # 副本数
---
# 持久化存储
persistence:
  enabled: true
  storageClass: ""  # sc 有默认sc可以不写
  accessModes:
    - ReadWriteOnce
  size: 8Gi
---
kraft:
  ## @param kraft.enabled Switch to enable or disable the Kraft mode for Kafka
  ##
  enabled: false   #设置为false
---
# 配置zookeeper外部连接
zookeeper:
  enabled: false                   # 不使用内部zookeeper,默认是false
externalZookeeper:                 # 外部zookeeper
  servers: zookeeper            #Zookeeper svc名称

---
externalAccess:
  ## @param externalAccess.enabled Enable Kubernetes external cluster access to Kafka brokers
  ##
  enabled: true
  broker:
    service:
      ## @param externalAccess.broker.service.type Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP
      ##
      type: NodePort
	  ports:
        external: 9092
	  nodePorts: 
        - 30001
        - 30002
        - 30003
      externalIPs: 
        - 10.101.17.11
        - 10.101.17.11
        - 10.101.17.11
---
## 文件末尾加入以下内容

## 允许删除topic(按需开启)
deleteTopicEnable: true
## 日志保留时间(默认一周)
logRetentionHours: 168
## 自动创建topic时的默认副本数
defaultReplicationFactor: 2
## 用于配置offset记录的topic的partition的副本个数
offsetsTopicReplicationFactor: 2
## 事务主题的复制因子
transactionStateLogReplicationFactor: 2
## min.insync.replicas
transactionStateLogMinIsr: 2
## 新建Topic时默认的分区数
numPartitions: 3

2、安装kafka

# 进入kafka的上级目录执行
helm install kafka-helm kafka/ -n ns-demo

连接kafka需要用户名密码(也可以去kubesphere保密字典查看密码)

security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
    username="user1" \
    password="$(kubectl get secret kafka-helm-user-passwords --namespace ns-demo -o jsonpath='{.data.client-passwords}' | base64 -d | cut -d , -f 1)";

查看 pod

kubectl describe pod -n ns-demo
kubectl get pod -n ns-demo

参考链接:https://www.cnblogs.com/-k8s/p/17908556.html

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐