簡體   English   中英

設置 Pod 重啟限制

[英]Set Pod Restart Limit

我們可以像 Kubernetes 中的 Docker swarm 一樣設置 Pod Restart Limit嗎?

Docker 群重啟策略:

    condition: any
    delay: 60s
    max_attempts: 2
    window: 60s         

或任何其他方式,因為 k8s 類型的 Deployment 不支持 Restart Policy neveronfailure

我的 Deployment.yaml:-

apiVersion: apps/v1
kind: Deployment
metadata:
  name: xyz
  labels:
    app: xyz
spec:
  replicas: 1
  selector:
    matchLabels:
      app: xyz
  template:
    metadata:
      labels:
        app: xyz
    spec:
      containers:
      - name: xyz
        image: x.y.z
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: x
      restartPolicy: Never

錯誤is invalid: spec.template.spec.restartPolicy: Unsupported value: "Never": supported values: "Always"

運行kubectl run --help | grep restart kubectl run --help | grep restart

你會看到有一個restartpolicy設置如下

 --restart='Always': The restart policy for this Pod.  
Legal values [Always, OnFailure, Never].  
If set to 'Always' a deployment is created, if set to 'OnFailure' a job is created, 
if set to 'Never', a regular pod is created. 
For the latter two --replicas must be 1.  Default 'Always', for CronJobs `Never`.

maxRetries還有一個新選項

$ cat pod_retry.yaml
apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  restartPolicy: "OnFailure"
  maxRetries: "3"                // Max retries is 3
  containers:
  - image: nginx:1.7.9
    name: test-pod
    command:
    - /bin/ls
    - hello

不幸的是,這是不可能的 官方文檔中它提到它只允許Always

僅允許.spec.template.spec.restartPolicy等於Always ,如果未指定,則為默認值。

DaemonSetStatefulSet情況相同。

Deployment 概念有關,所有 Pod 必須處於Running狀態,Pod 不能失敗或無響應。

部署代表一組多個相同的 Pod,沒有唯一的身份。 Deployment 運行應用程序的多個副本,並自動替換任何失敗或無響應的實例。 通過這種方式,部署有助於確保您的應用程序的一個或多個實例可用於滿足用戶請求。 部署由 Kubernetes 部署控制器管理。

默認情況下, Deployment自動創建ReplicaSet ,它也負責處理 Pod 的狀態。

ReplicaSet 由字段定義,包括一個選擇器,指定如何識別它可以獲取的 Pod,多個副本指示它應該維護多少個 Pod,以及一個 Pod 模板,指定它應該創建的新 Pod 的數據以滿足數量副本標准。 然后,ReplicaSet 通過根據需要創建和刪除 Pod 以達到所需數量來實現其目的。 當 ReplicaSet 需要創建新的 Pod 時,它會使用它的 Pod 模板。

只有podjob類型能夠使用帶有NeveronFailure值的restartPolicy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM