Kubernetes Job配置


  我們知道使用kubernetes的rc或者rs創建的pod,kubernetes會實時監控其健康狀態,如果發現pod掛掉以后,會自動啟動一個新的,讓pod的數量始終保持在指定的replicas上。那么問題就來了,在有些場景下,我們就是想要運行一些容器執行某種特定的任務,任務一旦執行完成,容器也就沒有存在的必要了。在這種場景下,我們使用rc來創建pod就顯得不那么合適。於是就是了Job,在這里,Job指的就是那些一次性任務。我們通過Job運行一個容器,當其任務執行完以后,就自動退出,集群也不再重新將其喚醒。

Job的創建非常簡單,我們直接看示例:

apiVersion: batch/v1
kind: Job
metadata:
  labels:
    name: busybox
  name: busybox
spec:
  template:
    metadata:
      name: busybox
    spec:
      containers:
        - name: busybox
          image: myhub.mingyuanyun.com/library/busybox
          command:
            - sleep
            - "30"
      restartPolicy: Never

這個示例,就是啟動一個busybox,讓其運行30s后自行退出,通過如下方式啟動:

kubectl create -f busybox.yml

當容器正常運行退出以后,我們執行如下指令可以查看到容器退出的狀態:

[root@server-116 test]# kubectl get jobs
NAME      DESIRED   SUCCESSFUL   AGE
busybox   1         1            1m

當successful從0變為1時,即正常退出

需要說明的是,容器雖然退出了,但job還在,要刪除job需要使用如下指令:

kubectl delete -f busybox.yml

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM