【K8S 部署Kafak+zookeeper】

本文档详细介绍了如何在Kubernetes(k8s)环境中部署单机Kafka并挂载本地NFS。首先,讲解了背景,假设读者对k8s、Kafka和Zookeeper有一定了解。接着,重点在于部署步骤,包括创建部署文件目录,配置NFS服务器,安装nfs-client-provisioner,最后部署Kafka和Zookeeper。在完成所有配置后,通过验证消息发送和接收来确保部署成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

K8S 部署Kafak+zookeeper

背景

当你点进了该篇文章对于什么是kubernetes、kafka、zookeeer应该都有所了解了吧。在此就不多加以解释和强调,用两个字描述就是:碉堡了!

本文章的重点

基于k8s 部署单机kafka 挂载本机nfs。
新建一个部署文件目录:mkdir /opt/kubernetes/kafka-k8s,并进入该目录。
那就可以开始上yaml文件:

前奏

1、节点安装nfs

yum -y install nfs-utils

2、创建nfs目录

mkdir -p /nfs/data/

3、修改权限

chmod -R 777 /nfs/data

4、编辑export文件,这个文件就是nfs默认的配置文件

vim /etc/exports

添加以下权限配置
(1) * 任意主机可以使用NFS服务
(2) rw 该主机对该共享目录有读写权限
(3) async 资料会先暂存于内存中,而非直接写入硬盘
(4) no_root_squash 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限,单词squash是压缩压扁的意思。

/nfs/data *(rw,no_root_squash,sync)

#配置生效

exportfs -r

#查看生效

exportfs

5、启动rpcbind、nfs服务

systemctl restart rpcbind && systemctl enable rpcbind
systemctl restart nfs && systemctl enable nfs

#查看 RPC 服务的注册状况

rpcinfo -p localhost

#showmount测试

showmount -e <你的主机ip>

#node节点安装客户端、开机启动

yum -y install nfs-utils
systemctl start nfs && systemctl enable nfs

6、注册nfs-client-provisioner nfs-client-provisioner.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: nfs-client-provisioner
  namespace: mo
---
kind: Deployment
apiVersion: apps/v1
metadata:
  namespace: mo
  name: nfs-client-provisioner
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      #app.kubernetes.io/instance: nfs-client-provisioner
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: quay.io/external_storage/nfs-client-provisioner:latest
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: fuseim.pri/ifs
            - name: NFS_SERVER
              value: <你的主机ip>
            - name: NFS_PATH
              value: /nfs/data
      volumes:
        - name: nfs-client-root
          nfs:
            server: <你的主机ip>
            path: /nfs/data
7、StorageClass 注册 storageClass.yaml
apiVersion: storage.k8s.io/v1
	kind: StorageClass
	metadata:
	  name: nfs-storage
	  namespace: mo
	parameters:
	  archiveOnDelete: "true"  #设置为"false"时删除PVC不会保留数据,"true"则保留数据
	mountOptions:
	  - hard                   #指定为硬挂载方式
	  - nfsvers=4              #指定NFS版本
	provisioner: fuseim.pri/ifs
	reclaimPolicy: Retain
8、给nfs-client-provisioner安排权限 rbacd.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: mo
  name: nfs-client-provisioner-runner
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "create", "delete"]
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs: ["get", "list", "watch", "update"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["storageclasses"]
    verbs: ["get", "list", "watch"]
  - apiGroups
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值