辅助容器依赖于外部资源,如果此资源不可用,则辅助容器会崩溃。它将带下整个 Pod。Kubernetes 尝试重新创建 Pod 并失败,因为现在无法启动辅助容器。
但从我的业务逻辑角度来看,辅助容器的崩溃是完全正常的。拥有辅助容器很好,但不是强制性的。
我不想让辅助容器在崩溃时带上主应用程序。
什么是最好的 Kubernetes 原生方法来实现这一点?
是否可以告诉 Kubernetes 忽略辅助容器的故障作为 "false positive" 事件,这是绝对可以接受的呢?
我在 pod 规格中找不到任何控制此行为的内容。
我的 yaml:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: myapp
spec:
volumes:
- name: logs-dir
emptyDir: {}
containers:
- name: myapp
image: ${IMAGE}
ports:
- containerPort: 9009
volumeMounts:
- name: logs-dir
mountPath: /usr/src/app/logs
resources:
limits:
cpu: "1"
memory: "512Mi"
readinessProbe:
initialDelaySeconds: 60
failureThreshold: 8
timeoutSeconds: 1
periodSeconds: 8
httpGet:
scheme: HTTP
path: /myapp/v1/admin-service/git-info
port: 9009
- name: graylog-sidecar
image: digiapulssi/graylog-sidecar:latest
volumeMounts:
- name: logs-dir
mountPath: /log
env:
- name: GS_TAGS
value: "[\"myapp\"]"
- name: GS_NODE_ID
value: "nodeid"
- name: GS_SERVER_URL
value: "${GRAYLOG_URL}"
- name: GS_LIST_LOG_FILES
value: "[\"/ctwf\"]"
- name: GS_UPDATE_INTERVAL
value: "10"
resources:
limits:
memory: "128Mi"
cpu: "0.1"