Rancher搭建zookeeper集群


創建zk工作負載

          創建集群的工作負載不能選擇Deployment 而要選擇Statfulset才行  這樣創建的pod名稱才是帶有編號的 如果是Deployment類型 那么創建出來的pod名稱是隨機的

         

          

            創建的pod名稱有規律后,我們就可以在zoo.cfg的配置文件中進行主機名稱的配置 如果是隨機的pod名稱,那么pod每次重啟后,配置在配置文件中的主機名稱就會異常

   動態生成zk配置文件

           使用sidecar模式來根據pod的順序來動態生成配置文件內容

      

       

        1.使用邊車模式的initcontainer容器實現

              

            

           

            

              

        2.在主容器中掛載卷

            

             

        3.訪問主容器中的卷文件

           

            

       4.動態生成serverid的配置文件   

#!/bin/sh

ordinal=`env | grep HOSTNAME |cut -d "-" -f2`
let serverid=$ordinal+1
echo $serverid > /mnt/myid
zk.sh

        

        

        

       

     zk集群異常處理

       報錯信息:
         Cannot open channel to 3 at election address
         UnknownHostException: zk-2.zk-hs.default.svc.cluster.local

     解決思路:
         配置文件$ ZOOKEEPER_HOME/conf/zoo.cfg,每個機器IP設置為“0.0.0.0”,如下所示:
          server.1=0.0.0.0:2888:3888
          server.2=zk-1.zk-hs.default.svc.cluster.local:2888:3888
          server.3=zk-2.zk-hs.default.svc.cluster.local:2888:3888

    修改方法:
        修改文件內容:當是本機的時候使用0.0.0.0ip

        function print_servers() {
           for (( i=1; i<=$SERVERS; i++ ))
              do

             #echo "server.$i=$NAME-$((i-1)).$DOMAIN:$SERVER_PORT:$ELECTION_PORT"
             if [ $ORD -eq $((i-1)) ]; then
                echo "server.$i=0.0.0.0:$SERVER_PORT:$ELECTION_PORT"
            else
               echo "server.$i=$NAME-$((i-1)).$DOMAIN:$SERVER_PORT:$ELECTION_PORT"
            fi
         done
       }

搭建kafka集群

   1.動態修改配置文件

   

serverid=128
sed -i "s/broker.id=108/broker.id=$serverid/g" kafka.properties
View Code
#!/bin/sh

mkdir -p /kafka/config2/
ordinal=`env | grep HOSTNAME |cut -d "-" -f2`
let serverid=$ordinal+1
let containerport=9092+$serverid
let listenport=39090+$serverid

sed -i "s/broker.id=.*/broker.id=$serverid/g" /kafka/config2/kafka.properties
#sed -i "s/listeners=.*/listeners=PLAINTEXT:/\/\0.0.0.0:$containerport/g" /kafka/config2/kafka.properties
sed -i "s/advertised.port=.*/advertised.port=$listenport/g" /kafka/config2/kafka.properties
sed -i "s#advertised.listeners=.*#advertised.listeners=PLAINTEXT://192.168.30.108:$listenport#g" /kafka/config2/kafka.properties
#sed -i "s/advertised.listeners=.*/advertised.listeners=PLAINTEXT://192.168.30.108:$listenport/g" /kafka/config2/kafka.properties
優化

2.設置sidecar容器

    

     

         

         

        主容器設置

           

            

 最終實現kafka集群搭建

     只用到了statfulset有序創建的特性 沒有使用到sidecar模型

      

 

     

    

   rancher頁面設置

        

      

   kafka消息通信測試

       

       

       

  kafka集群搭建成功版本

       

          

         

           

               

        

             

                

             

              

       

     

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM