K8S單節點跑zk叢集
阿新 • • 發佈:2021-10-14
1.編輯yaml
apiVersion: v1 kind: Service metadata: name: zk-hs namespace: uat 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 namespace: uat labels: app: zk spec: ports: - port: 2181 name: client selector: app: zk --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: zk-pdb namespace: uat spec: selector: matchLabels: app: zk maxUnavailable: 1 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: zk namespace: uat spec: selector: matchLabels: app: zk serviceName: zk-hs replicas: 3 updateStrategy: type: RollingUpdate podManagementPolicy: OrderedReady template: metadata: labels: app: zk spec: nodeSelector: env: uat containers: - name: kubernetes-zookeeper imagePullPolicy: IfNotPresent 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/${HOSTNAME} \ # 通過變數獲取對應的主機名,解決同一節點覆蓋,導致節點的zk沒法正常啟動選舉 --data_log_dir=/var/lib/zookeeper/data/${HOSTNAME}/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 - name: host-time mountPath: /etc/localtime # securityContext: # runAsUser: 0 # fsGroup: 0 volumes: - name: datadir hostPath: path: /store/logs/uat/zk type: DirectoryOrCreate - name: host-time hostPath: path: /etc/localtime