zookeeper和kafka集群部署代码

kafka.yaml

# kafka.yaml
apiVersion: v1
kind: Service
metadata:
  name: kafka-svc
  namespace: ops
  labels:
    app: kafka-svc
spec:
  ports:
  - port: 9092
    name: server
  clusterIP: None
  selector:
    app: kafka
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kafka-stateful
  namespace: ops
spec:
  selector:
    matchLabels:
      app: kafka
  serviceName: kafka-svc
  replicas: 3
  revisionHistoryLimit: 3
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: kafka
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values: 
                    - kafka
              topologyKey: "kubernetes.io/hostname"
        podAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
             - weight: 1
               podAffinityTerm:
                 labelSelector:
                    matchExpressions:
                      - key: "app"
                        operator: In
                        values: 
                        - zk
                 topologyKey: "kubernetes.io/hostname"
      terminationGracePeriodSeconds: 60
      containers:
      - name: kafka
        #imagePullPolicy: Always
        image: fastop/kafka:2.2.0
        resources:
          requests:
            memory: 1000Mi
            cpu: 500m
        ports:
        - containerPort: 9092
          name: server
        command:
        - sh
        - -c
        - "exec kafka-server-start.sh /opt/kafka/config/server.properties --override broker.id=${HOSTNAME##*-} \
          --override zookeeper.connect=zk-stateful-0.zk-hs.ops.svc.idc.cedu.cn:2181,zk-stateful-2.zk-hs.ops.svc.idc.cedu.cn:2181,zk-stateful-1.zk-hs.ops.svc.idc.cedu.cn:2181"
        env:
        - name: KAFKA_HEAP_OPTS
          value : "-Xmx512M -Xms512M"
        - name: KAFKA_OPTS
          value: "-Dlogging.level=INFO"
        volumeMounts:
        - name: storage
          mountPath: "/var/lib/kafka"
        - name: kafka
          mountPath: "/opt/kafka/config/server.properties"
          subPath: server.properties
        readinessProbe:
          tcpSocket:
            port: 9092
          timeoutSeconds: 10
          initialDelaySeconds: 5
        livenessProbe:
          tcpSocket:
            port: 9092
          timeoutSeconds: 10
          initialDelaySeconds: 5
      volumes:
      #- name: storage
      #  emptyDir: {}
      - name: kafka
        configMap:
          name: kafka-config
  volumeClaimTemplates:
  - metadata:
      name: storage
    spec:
      storageClassName: local-storage
      accessModes: [ ReadWriteOnce ]
      resources:
        requests:
          storage: 150Gi

zk.yaml

apiVersion: v1
kind: Service
metadata:
  name: zk-hs
  namespace: ops
  labels:
    app: zk-hs
spec:
  ports:
  - port: 2888
    name: server
  - port: 3888
    name: leader-election
  clusterIP: None
  selector:
    app: zk
---
apiVersion: v1
kind: Service
metadata:
  name: zk-client
  namespace: ops
  labels:
    app: zk-client
spec:
  ports:
  - port: 2181
    name: client
  selector:
   app: zk
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: zk-stateful
  namespace: ops
spec:
  selector:
    matchLabels:
      app: zk
  serviceName: zk-hs
  replicas: 3
  revisionHistoryLimit: 3
  updateStrategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: zk
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"
      containers:
      - name: zookeeper
        #imagePullPolicy: Always
        image: fastop/zookeeper:3.4.10
        resources:
          requests:
            memory: "800Mi"
            cpu: "300m"
        ports:
        - containerPort: 2181
          name: client
        - containerPort: 2888
          name: server
        - containerPort: 3888
          name: leader-election
        env:
        - name: dataDir
          value: /var/lib/zookeeper/data
        command:
        - sh
        - -c
        - "start-zookeeper
          --servers=3 \
          --data_dir=/var/lib/zookeeper/data \
          --data_log_dir=/var/lib/zookeeper/data/log \
          --conf_dir=/opt/zookeeper/conf \
          --client_port=2181 \
          --election_port=3888 \
          --server_port=2888 \
          --tick_time=2000 \
          --init_limit=10 \
          --sync_limit=5 \
          --heap=512M \
          --max_client_cnxns=60 \
          --snap_retain_count=3 \
          --purge_interval=12 \
          --max_session_timeout=40000 \
          --min_session_timeout=4000 \
          --log_level=INFO"
        readinessProbe:
          exec:
            command:
            - sh
            - -c
            - "zookeeper-ready 2181"
          initialDelaySeconds: 10
          timeoutSeconds: 5
        livenessProbe:
          exec:
            command:
            - sh
            - -c
            - "zookeeper-ready 2181"
          initialDelaySeconds: 10
          timeoutSeconds: 5
        volumeMounts:
        - name: storage
          mountPath: "/var/lib/zookeeper"
       # - name: zk-conf
       #   mountPath: "/conf/zoo.cfg"
       #   subPath: zoo.cfg
      volumes:
      - name: storage
        emptyDir: {}
      #- name: zk-conf
      #  configMap:
      #    name: zk-config

server.properties

# 生成configmap 配置热加载
broker.id=0
listeners=PLAINTEXT://:9092 
zookeeper.connect=zk-stateful-0.zk-hs.ops.svc.idc.cedu.cn:2181,zk-stateful-2.zk-hs.ops.svc.idc.cedu.cn:2181,zk-stateful-1.zk-hs.ops.svc.idc.cedu.cn:2181 
log.dir=/var/lib/kafka 
auto.create.topics.enable=true 
auto.leader.rebalance.enable=true 
background.threads=10 
compression.type=producer 
delete.topic.enable=false 
leader.imbalance.check.interval.seconds=300 
leader.imbalance.per.broker.percentage=10 
log.flush.interval.messages=9223372036854775807 
log.flush.offset.checkpoint.interval.ms=60000 
log.flush.scheduler.interval.ms=9223372036854775807 
log.retention.bytes=-1 
log.retention.hours=168 
log.roll.hours=168 
log.roll.jitter.hours=0
log.segment.bytes=1073741824 
log.segment.delete.delay.ms=60000  
message.max.bytes=1000012  
min.insync.replicas=1  
num.io.threads=8  
num.network.threads=3  
num.recovery.threads.per.data.dir=1  
num.replica.fetchers=1  
offset.metadata.max.bytes=4096  
offsets.commit.required.acks=-1  
offsets.commit.timeout.ms=5000  
offsets.load.buffer.size=5242880  
offsets.retention.check.interval.ms=600000  
offsets.retention.minutes=1440  
offsets.topic.compression.codec=0  
offsets.topic.num.partitions=50  
offsets.topic.replication.factor=3  
offsets.topic.segment.bytes=104857600  
queued.max.requests=500  
quota.consumer.default=9223372036854775807  
quota.producer.default=9223372036854775807  
replica.fetch.min.bytes=1  
replica.fetch.wait.max.ms=500  
replica.high.watermark.checkpoint.interval.ms=5000  
replica.lag.time.max.ms=10000  
replica.socket.receive.buffer.bytes=65536  
replica.socket.timeout.ms=30000  
request.timeout.ms=30000  
socket.receive.buffer.bytes=102400  
socket.request.max.bytes=104857600  
socket.send.buffer.bytes=102400  
unclean.leader.election.enable=true  
zookeeper.session.timeout.ms=6000  
zookeeper.set.acl=false  
broker.id.generation.enable=true  
connections.max.idle.ms=600000  
controlled.shutdown.enable=true  
controlled.shutdown.max.retries=3  
controlled.shutdown.retry.backoff.ms=5000  
controller.socket.timeout.ms=30000  
default.replication.factor=1  
fetch.purgatory.purge.interval.requests=1000  
group.max.session.timeout.ms=300000  
group.min.session.timeout.ms=6000  
inter.broker.protocol.version=2.2.0  
log.cleaner.backoff.ms=15000  
log.cleaner.dedupe.buffer.size=134217728  
log.cleaner.delete.retention.ms=86400000  
log.cleaner.enable=true  
log.cleaner.io.buffer.load.factor=0.9  
log.cleaner.io.buffer.size=524288  
log.cleaner.io.max.bytes.per.second=1.7976931348623157E308  
log.cleaner.min.cleanable.ratio=0.5  
log.cleaner.min.compaction.lag.ms=0  
log.cleaner.threads=1  
log.cleanup.policy=delete  
log.index.interval.bytes=4096  
log.index.size.max.bytes=10485760  
log.message.timestamp.difference.max.ms=9223372036854775807  
log.message.timestamp.type=CreateTime  
log.preallocate=false  
log.retention.check.interval.ms=300000  
max.connections.per.ip=2147483647  
num.partitions=4  
producer.purgatory.purge.interval.requests=1000  
replica.fetch.backoff.ms=1000  
replica.fetch.max.bytes=1048576  
replica.fetch.response.max.bytes=10485760  
reserved.broker.max.id=1000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值