阿里云k8s部署zookeeper集群

1. 阿里云k8s创建有状态应用 StatefulSet ,  选择使用模板创建

可以创建自定义模板

apiVersion: apps/v1
kind: StatefulSet
metadata:
creationTimestamp: '2019-09-09T08:45:12Z'
generation: 1
labels:
app: zookeeper
chart: zookeeper-0.4.2
heritage: Tiller
release: zk-test02
name: zk-test02-zookeeper
namespace: weifeng-qa spec:
podManagementPolicy: OrderedReady
replicas: 3
revisionHistoryLimit: 10
selector:
matchLabels:
app: zookeeper
release: zk-test02
serviceName: zk-test02-zookeeper-headless
template:
metadata:
labels:
app: zookeeper
release: zk-test02
spec:
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app: zookeeper
release: zk-test02
topologyKey: kubernetes.io/hostname
containers:
- command:
- sh
- '-c'
- zkGenConfig.sh && exec zkServer.sh start-foreground
env:
- name: ZK_REPLICAS
value: '3'
- name: ZK_HEAP_SIZE
value: 2G
- name: ZK_TICK_TIME
value: '2000'
- name: ZK_INIT_LIMIT
value: '10'
- name: ZK_SYNC_LIMIT
value: '5'
- name: ZK_MAX_CLIENT_CNXNS
value: '60'
- name: ZK_SNAP_RETAIN_COUNT
value: '3'
- name: ZK_PURGE_INTERVAL
value: '1'
- name: ZK_LOG_LEVEL
value: INFO
- name: ZK_CLIENT_PORT
value: '2181'
- name: ZK_SERVER_PORT
value: '2888'
- name: ZK_ELECTION_PORT
value: '3888'
image: 'registry.cn-hangzhou.aliyuncs.com/xianlu/k8szk:v2'
imagePullPolicy: Always
livenessProbe:
exec:
command:
- zkOk.sh
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: zookeeper-server
ports:
- containerPort: 2181
name: client
protocol: TCP
- containerPort: 2888
name: server
protocol: TCP
- containerPort: 3888
name: leader-election
protocol: TCP
readinessProbe:
exec:
command:
- zkOk.sh
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
resources:
limits:
cpu: '1'
memory: 4Gi
requests:
cpu: 500m
memory: 2Gi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/lib/zookeeper
name: datadir
subPath: data
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
updateStrategy:
type: OnDelete
volumeClaimTemplates:
- metadata:
name: datadir
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: alicloud-disk-efficiency
status:
phase: Pending  

使用模板创建应用后, 阿里云会自动使用高效云盘创建pv,pvc  挂载到pod 目录  /var/lib/zookeeper

阿里云k8s部署zookeeper集群

创建有状态应用后 再创建服务 svc和 headless service

阿里云k8s部署zookeeper集群

阿里云k8s部署zookeeper集群

再创建可让外部访问的slb

阿里云k8s部署zookeeper集群

测试创建的应用是否正常运行

[root@test-master03 ~]# kubectl get pod -n weifeng-qa|grep -i "zk-test02"
zk-test02-zookeeper-0 1/1 Running 0 57m
zk-test02-zookeeper-1 1/1 Running 0 56m
zk-test02-zookeeper-2 1/1 Running 0 55m

  

[root@test-master03 ~]# kubectl exec -it zk-test02-zookeeper-0 sh -n xitu-qa
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/bin/../etc/zookeeper/zoo.cfg
Mode: follower kubectl exec -it zk-test02-zookeeper-1 sh -n xitu-qa
# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/bin/../etc/zookeeper/zoo.cfg
Mode: follower kubectl exec -it zk-test02-zookeeper-2 sh -n xitu-qa # zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/bin/../etc/zookeeper/zoo.cfg
Mode: leader

  

本地客户端连接slb:2181 测试是否正常运行

[root@centos01 ~]# zkCli.sh -server 192.168.7.225:2181

WatchedEvent state:SyncConnected type:None path:null

[zk: 192.168.7.225:2181(CONNECTED) 0] create /renwoledb 'weifeng01'
Created /renwoledb
[zk: 192.168.7.225:2181(CONNECTED) 1] get /renwoledb
weifeng01
cZxid = 0x100000002
ctime = Sat Oct 05 16:02:02 CST 2019
mZxid = 0x100000002
mtime = Sat Oct 05 16:02:02 CST 2019
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0

  

上一篇:阿里云-容器服务之集群服务 k8s(Jenkins+gitlab+k8s的devops)- 01


下一篇:Dev GridControl 小结3