• 从零到一k8s(附件)zookeeper部署


    使用sts简单安装zookeeper 集群

    创建集群

    点击查看代码
    apiVersion: v1
    kind: Service
    metadata:
      name: zk-hs
      labels:
        app: zk
    spec:
      ports:
      - port: 2888
        name: server
      - port: 3888
        name: leader-election
      clusterIP: None
      selector:
        app: zk
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: zk-cs
      labels:
        app: zk
    spec:
      ports:
      - port: 2181
        name: client
      selector:
        app: zk
    ---
    apiVersion: policy/v1beta1
    kind: PodDisruptionBudget
    metadata:
      name: zk-pdb
    spec:
      selector:
        matchLabels:
          app: zk
      maxUnavailable: 1
    ---
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: zk
    spec:
      selector:
        matchLabels:
          app: zk
      serviceName: zk-hs
      replicas: 3
      updateStrategy:
        type: RollingUpdate
      podManagementPolicy: OrderedReady
      template:
        metadata:
          labels:
            app: zk
        spec:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                - labelSelector:
                    matchExpressions:
                      - key: "app"
                        operator: In
                        values:
                        - zk
                  topologyKey: "kubernetes.io/hostname"
          containers:
          - name: kubernetes-zookeeper
            imagePullPolicy: Always
            image: "k8s.gcr.io/kubernetes-zookeeper:1.0-3.4.10"
            resources:
              requests:
                memory: "1Gi"
                cpu: "0.5"
            ports:
            - containerPort: 2181
              name: client
            - containerPort: 2888
              name: server
            - containerPort: 3888
              name: leader-election
            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: datadir
              mountPath: /var/lib/zookeeper
          securityContext:
            runAsUser: 1000
            fsGroup: 1000
      volumeClaimTemplates:
      - metadata:
          name: datadir
        spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 10Gi
    
    

    查看集群配置

    点击查看代码
    root@us-test00:~# for i in 0 1 2; do echo "myid zk-$i";kubectl exec zk-$i -- cat /var/lib/zookeeper/data/myid; done
    myid zk-0
    1
    myid zk-1
    2
    myid zk-2
    3
    root@us-test00:~# for i in 0 1 2; do kubectl exec zk-$i -- hostname -f; done
    zk-0.zk-hs.default.svc.xlqforever.com
    zk-1.zk-hs.default.svc.xlqforever.com
    zk-2.zk-hs.default.svc.xlqforever.com
    root@us-test00:~# kubectl exec zk-0 -- cat /opt/zookeeper/conf/zoo.cfg
    #This file was autogenerated DO NOT EDIT
    clientPort=2181
    dataDir=/var/lib/zookeeper/data
    dataLogDir=/var/lib/zookeeper/data/log
    tickTime=2000
    initLimit=10
    syncLimit=5
    maxClientCnxns=60
    minSessionTimeout=4000
    maxSessionTimeout=40000
    autopurge.snapRetainCount=3
    autopurge.purgeInteval=12
    server.1=zk-0.zk-hs.default.svc.xlqforever.com:2888:3888
    server.2=zk-1.zk-hs.default.svc.xlqforever.com:2888:3888
    server.3=zk-2.zk-hs.default.svc.xlqforever.com:2888:3888
    

    操作数据

    点击查看代码
    root@us-test00:~# kubectl exec zk-0 zkCli.sh create /hello world
    kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
    Connecting to localhost:2181
    2020-09-10 07:07:34,767 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
    2020-09-10 07:07:34,771 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=zk-0.zk-hs.default.svc.xlqforever.com
    2020-09-10 07:07:34,771 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_131
    2020-09-10 07:07:34,773 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
    2020-09-10 07:07:34,773 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/lib/jvm/java-8-openjdk-amd64/jre
    2020-09-10 07:07:34,773 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/usr/bin/../build/classes:/usr/bin/../build/lib/*.jar:/usr/bin/../share/zookeeper/zookeeper-3.4.10.jar:/usr/bin/../share/zookeeper/slf4j-log4j12-1.6.1.jar:/usr/bin/../share/zookeeper/slf4j-api-1.6.1.jar:/usr/bin/../share/zookeeper/netty-3.10.5.Final.jar:/usr/bin/../share/zookeeper/log4j-1.2.16.jar:/usr/bin/../share/zookeeper/jline-0.9.94.jar:/usr/bin/../src/java/lib/*.jar:/usr/bin/../etc/zookeeper:
    2020-09-10 07:07:34,774 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
    2020-09-10 07:07:34,774 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
    2020-09-10 07:07:34,774 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
    2020-09-10 07:07:34,774 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
    2020-09-10 07:07:34,774 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
    2020-09-10 07:07:34,775 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=5.4.0-1070-azure
    2020-09-10 07:07:34,775 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=zookeeper
    2020-09-10 07:07:34,775 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/home/zookeeper
    2020-09-10 07:07:34,775 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/
    2020-09-10 07:07:34,777 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@22d8cfe0
    2020-09-10 07:07:34,796 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1032] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
    2020-09-10 07:07:34,852 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@876] - Socket connection established to localhost/127.0.0.1:2181, initiating session
    2020-09-10 07:07:34,861 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1299] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x17f72a31a9c0001, negotiated timeout = 30000
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    Node already exists: /hello
    
  • 相关阅读:
    认识hammer.js
    Mac使用Charles进行HTTPS抓包
    CentOS7下安装Python3及Pip3并保留Python2
    CenOS7.4内核升级修复系统漏洞
    PHP连接不上MySQL解决方案总结
    linux安装redis
    图片上传的两种实现方式
    python笔记6 模块与包 程序开发规范 包 re sys time os模块
    python Image 模块处理图片
    python笔记5 接口类抽象类 封装 反射 设计模式 模块 :random随机数 josn shelve持久化存储
  • 原文地址:https://www.cnblogs.com/leleyao/p/15988822.html
Copyright © 2020-2023  润新知