zoukankan      html  css  js  c++  java
  • k8s部署kafka集群

    一、概述

    在k8s里面部署kafka、zookeeper这种有状态的服务,不能使用deployment和RC,k8s提供了一种专门用来部署这种有状态的服务的API--statefulset,有状态简单来说就是需要持久化数据,比如日志、数据库数据、服务状态等。

    statefulset应用场景:

    • 稳定的持久化存储,即Pod重新调度后还是能访问到相同的持久化数据,基于PVC来实现
    • 稳定的网络标志,即Pod重新调度后其PodName和HostName不变,基于Headless Service(即没有Cluster IP的Service)来实现
    • 有序部署,有序扩展,即Pod是有顺序的,在部署或者扩展的时候要依据定义的顺序依次依次进行(即从0到N-1,在下一个Pod运行之前所有之前的Pod必须都是Running和Ready状态),基于init containers来实现
    • 有序收缩,有序删除(即从N-1到0)

    statefulset组成:

    • 用于定义网络标志(DNS domain)的Headless Service
    • 用于创建PersistentVolumes的volumeClaimTemplates
    • 定义具体应用的StatefulSet

    StatefulSet中每个Pod的DNS格式为statefulSetName-{0..N-1}.serviceName.namespace.svc.cluster.local,其中 

    • 0..N-1为Pod所在的序号,从0开始到N-1
    • serviceName为Headless Service的名字
    • statefulSetName为StatefulSet的名字
    • namespace为服务所在的namespace,Headless Servic和StatefulSet必须在相同的namespace
    • .cluster.local为Cluster Domain

     

    二、部署

    首先下载相关的部署文件:

    git  clone  https://github.com/cuishuaigit/k8s-kafka.git

    部署前需要提前准备nfs提供动态存储,参考我之前的博客:https://www.cnblogs.com/cuishuai/p/9152277.html

    cd  k8s-kafka
    kubectl create -f namesapce.yaml
    kubectl create -f zk.yaml 

    kubectl create
    -f kafka.yaml

     

    详细信息参考:https://github.com/cuishuaigit/k8s-kafka

     

  • 相关阅读:
    linux & centos命令
    javascript总结
    SocanCode7之模板编写
    SocanCode连接Oracle的方法
    ashx的使用
    SocanCode代码生成器版本更新记录 [SocanCode7全新发布]
    IIS7.0中使用MVC3,静态页正常,其它404
    不用再纠结反射影响效率了
    ASP.NET MVC 框架处理请求生命周期
    create xmlhttprequest
  • 原文地址:https://www.cnblogs.com/cuishuai/p/10243291.html
Copyright © 2011-2022 走看看