使用API:CreateApp
注意应用StateType=2,代表有状态应用。默认为无状态应用,即使用Deployment部署。
使用API:CreateDeployConfig
可以使用configmap存放zk的基本配置以及初始化配置脚本。注意所有的yaml配置需要Base64序列化后加入到参数中。
参考配置:
1、 configmap
kindConfigMap metadata namezookeeper-config # namespace: kafka apiVersionv1 data init.sh- #!/bin/bash set -e set -x -z "$ID_OFFSET" && ID_OFFSET=1 export ZOO_MY_ID=$(($HOSTNAME##*- + $ID_OFFSET)) echo "${ZOO_MY_ID:-1}" | tee $ZOO_DATA_DIR/myid cat $EXTERNAL_CONF_PATH/zookeeper.properties > $ZOO_CONF_DIR/zoo.cfg sed -i "s/server\.${ZOO_MY_ID}\=[a-z0-9.-]*/server.${ZOO_MY_ID}=0.0.0.0/" $ZOO_CONF_DIR/zoo.cfg zookeeper.properties- tickTime=2000 dataDir=/data dataLogDir=/datalog clientPort=2181 maxClientCnxns=1 initLimit=5 syncLimit=2 autopurge.snapRetainCount=3 autopurge.purgeInterval=1 server.1=zk-0.zk-hs:2888:3888 server.2=zk-1.zk-hs:2888:3888 server.3=zk-2.zk-hs:2888:3888
2、statefulset
apiVersionapps/v1 kindStatefulSet metadata namezk spec selector matchLabels appzk serviceNamezk-hs updateStrategy typeRollingUpdate podManagementPolicyParallel template metadata labels appzk spec affinity podAntiAffinity requiredDuringSchedulingIgnoredDuringExecution labelSelector matchExpressions key"app" operatorIn values zk topologyKey"kubernetes.io/hostname" containers namezookeeper imagePullPolicyIfNotPresent image"registry-vpc.cn-zhangjiakou.aliyuncs.com/zaide_demo/zookeeper:1.0.0" ports containerPort2181 nameclient containerPort2888 nameserver containerPort3888 nameleader-election env nameEXTERNAL_CONF_PATH value/external/bin readinessProbe exec command /bin/sh -c '[ "imok" = "$(echo ruok | nc -w 1 -q 1 127.0.0.1 2181)" ]' volumeMounts namedatadir mountPath/var/lib/zookeeper nameconfigmap mountPath/external/bin/ volumes nameconfigmap configMap namezookeeper-config namedatadir emptyDir
使用API:CreateEnvironment
注意:环境的实例个数注意和上面ConfigMap的配置保持一致。
使用API:CreateService
参考请求:
Action=CreateService& EnvId=xxxx& Headless=true& K8sServiceId=zk-hs& Name=zk-hs& PortMappings.1.Name=server& PortMappings.1.Port=2888& PortMappings.1.Protocol=TCP& PortMappings.1.TargetPort=2888& PortMappings.2.Name=leader-election& PortMappings.2.Port=3888& PortMappings.2.Protocol=TCP& PortMappings.2.TargetPort=3888& ServiceType=ClusterIP
使用API:DeployApp
也可以使用控制台进行部署(注意,暂时不支持yaml类型配置在控制台更新)
使用API:DescribeDeployOrderDetail, DescribePodLog, DescribePodEvents
可以在控制台找到刚才通过API提交的发布单,查看发布单结果,或者调用发布相关API确认结果。