采用logstash作为sidecar的方式,去收集日志,类似于当前的filebeat的模式
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wso2apim
spec:
replicas: 1
minReadySeconds: 30
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
labels:
deployment: wso2apim
spec:
initContainers:
- name: init-wso2-elasticsearch-service
image: busybox
command: ['sh', '-c', 'until nc -z wso2-elasticsearch-service 9200; do echo waiting for wso2-elasticsearch-service; sleep 2; done;']
containers:
- name: wso2apim
image: wso2/wso2am:2.6.0
livenessProbe:
exec:
command:
- /bin/bash
- -c
- nc -z localhost 9443
initialDelaySeconds: 150
periodSeconds: 10
readinessProbe:
exec:
command:
- /bin/bash
- -c
- nc -z localhost 9443
initialDelaySeconds: 150
periodSeconds: 10
imagePullPolicy: Always
ports:
-
containerPort: 8280
protocol: "TCP"
-
containerPort: 8243
protocol: "TCP"
-
containerPort: 9763
protocol: "TCP"
-
containerPort: 9443
protocol: "TCP"
-
containerPort: 5672
protocol: "TCP"
-
containerPort: 9711
protocol: "TCP"
-
containerPort: 9611
protocol: "TCP"
-
containerPort: 7711
protocol: "TCP"
-
containerPort: 7611
protocol: "TCP"
volumeMounts:
- name: shared-logs
mountPath: /home/wso2carbon/wso2am-2.6.0/repository/logs/
- name: logstash
image: maanadev/logstash:6.5.3-custom
volumeMounts:
- name: shared-logs
mountPath: /usr/share/logstash/mylogs/
- name: logstash-yml
mountPath: /usr/share/logstash/config/logstash.yml
subPath: logstash.yml
- name: logstash-conf
mountPath: /usr/share/logstash/pipeline/logstash.conf
subPath: logstash.conf
env:
- name: NODE_ID
value: "wso2-apim"
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumes:
- name: shared-logs
emptyDir: {}
- name: logstash-yml
configMap:
name: logstash-yml
- name: logstash-conf
configMap:
name: logstash-conf
采用伴生容器的方式