Docker
超出 GKE 上下文期限:CreateContainerError 並且未能保留容器名稱
我正在執行一個 GKE 集群,有時,其中一個節點與從
php7-alpine
.我們執行兩種類型的容器,第一種類型是從 建構的
php7-alpine
,第二種類型是從第一種類型建構的。(php7-alpine
->Base App
->App with extra
)。只有我們Base App
Pods
有這些問題。到目前為止,我已經看到以下錯誤:
failed to reserve container name
FailedSync: error determining status: rpc error: code = Unknown desc = Error: No such container: XYZ
Error: context deadline exceeded context deadline exceeded: CreateContainerError
節點上有大量磁碟空間,
kubectl describe pod
不包含任何相關/有用的資訊。更多細節:
- 在 50 個
Base app
中,有 6 個 pod 出錯,並且在所有App with extra
pod 中,沒有一個失敗。- 所有失敗的 pod 總是在同一個節點上。
- 我們已經重新創建/替換了節點。問題仍然存在,如果我們用有故障的 pod 替換節點,我們有 50/50% 的機率讓下一個節點上的所有 pod 都正常。問題顯得有些隨機。
- 執行 GKE v1.17.9-gke.1504
- 我們在可搶占節點上執行。
- 容器圖像非常大(~3gb,正在努力減少)。
- 問題可能在一個月前開始。
我真的不知道要尋找什麼,我已經廣泛尋找類似的問題。任何幫助是極大的讚賞!
更新:
這是部署
apiVersion: apps/v1 kind: Deployment metadata: labels: app: my-app appType: web env: prod name: my-app namespace: default spec: replicas: 2 selector: matchLabels: app: my-app strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 type: RollingUpdate template: metadata: labels: app: my-app version: v1.0 spec: containers: image: richarvey/nginx-php-fpm:latest # We build upon that image to add content and services lifecycle: preStop: exec: command: - /entry-point/stop.sh name: web ports: - containerPort: 80 protocol: TCP resources: requests: cpu: 50m memory: 1500Mi - image: redis:4.0-alpine name: redis resources: requests: cpu: 25m memory: 25Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File
該問題已被調查並修復。