-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcodis-server-template.yaml
92 lines (91 loc) · 3.45 KB
/
codis-server-template.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
apiVersion: "apps/v1beta1"
kind: StatefulSet
metadata:
name: codis-server-PRODUCT_NAME
spec:
serviceName: codis-server-PRODUCT_NAME
replicas: 4
template:
metadata:
labels:
app: codis-server-PRODUCT_NAME
annotations:
scheduler.alpha.kubernetes.io/affinity: >
{
"podAntiAffinity": {
"preferredDuringSchedulingIgnoredDuringExecution": [{
"weight":100,
"labelSelector": {
"matchExpressions": [{
"key": "app",
"operator": "In",
"values": ["codis-server-PRODUCT_NAME"]
}]
},
"topologyKey": "kubernetes.io/hostname"
}]
}
}
spec:
imagePullSecrets:
- name: adhoc-docker-registry
containers:
- name: codis-server
image: registry.appadhoc.com:30443/adhoc-cache:3.2
imagePullPolicy: IfNotPresent
command: ["codis-server"]
args: ["$(CODIS_PATH)/config/redis.conf","--logfile","/tmp/$(POD_NAME).log","--protected-mode", "no", "--bind", "$(POD_IP)", "--daemonize", "no"]
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --reload; if [ $? != 0 ]; then exit 1; fi; \
sid=`hostname |awk -F'-' '{print $4}'`;gid=$(expr $sid / ${SERVER_REPLICA} + 1); \
codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --create-group --gid=${gid} 1>/dev/null 2>&1; \
codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --group-add --gid=${gid} --addr=${POD_IP}:6379; \
if [ $? != 0 -a ${SERVER_REPLICA} -gt 1 ]; then exit 1; fi; \
codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --sync-action --create --addr=${POD_IP}:6379 1>/dev/null 2>&1 "]
preStop:
exec:
command: ["/bin/sh", "-c", "codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --reload 1>/dev/null 2>&1; if [ $? != 0 ]; then exit 1; fi; \
sid=`hostname |awk -F'-' '{print $3}'`;gid=$(expr $sid / ${SERVER_REPLICA} + 1); sleep 5;\
codis-admin --dashboard=codis-dashboard-PRODUCT_NAME:18080 --group-del --gid=${gid} --addr=${POD_IP}:6379 1>/dev/null 2>&1"]
env:
- name: SERVER_REPLICA
value: "2"
- name: CODIS_PATH
value: "/gopath/src/github.com/CodisLabs/codis"
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: datadir
mountPath: /codis
ports:
- containerPort: 6379
name: service-port
resources:
limits:
cpu: "2"
memory: 6Gi
requests:
cpu: "0.1"
memory: 0.1Gi
volumeClaimTemplates:
- metadata:
name: datadir
annotations:
volume.beta.kubernetes.io/storage-class: gluster-vol-default
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: STORAGE