Kubernetes----Job控制器
生活随笔
收集整理的這篇文章主要介紹了
Kubernetes----Job控制器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【原文鏈接】
一、Job控制器簡介
1.1 Job控制器簡介
Job,主要用于負責批量處理短暫的一次性任務,Job特點如下:
- 當Job創建的Pod執行成功時,job將幾乎成功結束的pod數量
- 當成功結束的pod達到指定的數量時,job將完成執行
1.2 Job控制器資源文件
apiVersion: batch/v1 # 版本號 kind: Job # 類型 metadata: # 元數據name: # rs名稱namespae: # 所屬命名空間labels: # 標簽controller: job spec: # 詳情描述completions: 1 # 指定Job需要成功運行Pod的次數,默認值為1parallelism: 1 # 指定Job在同一時刻應該并發運行Pod的數量,默認值為1activeDeadlineSeconds: 30 # 指定Job可運行的時間期限,超過時間還為結束,系統將會嘗試進行終止backoffLimit: 6 # 指定Job失敗后進行重試的次數,默認值為6manualSelector: true # 是否可以使用selector選擇器選擇pod,默認是falseselector: # 選擇器,通過它指定該控制器管理哪些PodmatchLabels: # Label匹配規則app: controller-podmatchExpressions: # Expressions匹配項- {key: app, operator: In, values: [controller-pod]}template: # 模板,當副本數量不足時,會根據下面的模板創建pod副本metadata:labels:app: controller-podspec:restartPolicy: Never # 重啟策略只能設置為Never或者OnFailurecontainers:- name: counter- image: nginx:1.17.1二、Job控制器實例
2.1 Job控制器實例演示
編輯pc_job.yaml文件,內容如下
apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: batch/v1 kind: Job metadata:name: pc-jobnamespace: dev spec:manualSelector: trueselector:matchLabels:app: counter-podtemplate:metadata:labels:app: counter-podspec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: ["/bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]然后開啟另外兩個窗口分別使用如下命令監視job和pod的狀態變化
# 監視job的窗口kubectl get job -n dev -o wide -w # 監視pod的窗口kubectl get pod -n dev -o wide -w然后使用如下命令創建資源
[root@master pod_controller]# kubectl apply -f pc_job.yaml namespace/dev created job.batch/pc-job created [root@master pod_controller]#然后可以看到job的變化如下:
[root@master ~]# kubectl get job -n dev -o wide -w NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR pc-job 0/1 0s counter busybox:1.30 app=counter-pod pc-job 0/1 0s 0s counter busybox:1.30 app=counter-pod pc-job 1/1 28s 28s counter busybox:1.30 app=counter-pod而pod的變化如下:
[root@master ~]# kubectl get pod -n dev -o wide -w NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pc-job-hn5gj 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-hn5gj 0/1 Pending 0 0s <none> node2 <none> <none> pc-job-hn5gj 0/1 ContainerCreating 0 0s <none> node2 <none> <none> pc-job-hn5gj 1/1 Running 0 1s 10.244.2.105 node2 <none> <none> pc-job-hn5gj 0/1 Completed 0 28s 10.244.2.105 node2 <none> <none>2.2 設置總數和并行參數的Job控制器實例
編輯pc_job.yaml文件,內容如下,需要創建6個pod,允許并行執行3個
apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: batch/v1 kind: Job metadata:name: pc-jobnamespace: dev spec:manualSelector: truecompletions: 6parallelism: 3selector:matchLabels:app: counter-podtemplate:metadata:labels:app: counter-podspec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: ["/bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]然后開啟另外兩個窗口分別使用如下命令監視job和pod的狀態變化
# 監視job的窗口kubectl get job -n dev -o wide -w # 監視pod的窗口kubectl get pod -n dev -o wide -w然后使用如下命令創建資源
[root@master pod_controller]# kubectl apply -f pc_job.yaml namespace/dev created job.batch/pc-job created [root@master pod_controller]#job的變化過程如下:
[root@master ~]# kubectl get job -n dev -o wide -w NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR pc-job 0/6 0s counter busybox:1.30 app=counter-pod pc-job 0/6 0s 0s counter busybox:1.30 app=counter-pod pc-job 1/6 28s 28s counter busybox:1.30 app=counter-pod pc-job 2/6 28s 28s counter busybox:1.30 app=counter-pod pc-job 3/6 29s 29s counter busybox:1.30 app=counter-pod pc-job 4/6 57s 57s counter busybox:1.30 app=counter-pod pc-job 5/6 57s 57s counter busybox:1.30 app=counter-pod pc-job 6/6 57s 57s counter busybox:1.30 app=counter-podpod的變化過程如下:
[root@master ~]# kubectl get pod -n dev -o wide -w NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pc-job-m7q4d 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-jwtsg 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-7hg9g 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-m7q4d 0/1 Pending 0 0s <none> node2 <none> <none> pc-job-jwtsg 0/1 Pending 0 0s <none> node1 <none> <none> pc-job-7hg9g 0/1 Pending 0 0s <none> node1 <none> <none> pc-job-m7q4d 0/1 ContainerCreating 0 0s <none> node2 <none> <none> pc-job-jwtsg 0/1 ContainerCreating 0 0s <none> node1 <none> <none> pc-job-7hg9g 0/1 ContainerCreating 0 0s <none> node1 <none> <none> pc-job-jwtsg 1/1 Running 0 1s 10.244.1.89 node1 <none> <none> pc-job-7hg9g 1/1 Running 0 1s 10.244.1.88 node1 <none> <none> pc-job-m7q4d 1/1 Running 0 2s 10.244.2.106 node2 <none> <none> pc-job-7hg9g 0/1 Completed 0 28s 10.244.1.88 node1 <none> <none> pc-job-vdsgl 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-jwtsg 0/1 Completed 0 28s 10.244.1.89 node1 <none> <none> pc-job-vdsgl 0/1 Pending 0 0s <none> node1 <none> <none> pc-job-vtln5 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-vdsgl 0/1 ContainerCreating 0 0s <none> node1 <none> <none> pc-job-vtln5 0/1 Pending 0 0s <none> node1 <none> <none> pc-job-vtln5 0/1 ContainerCreating 0 1s <none> node1 <none> <none> pc-job-m7q4d 0/1 Completed 0 29s 10.244.2.106 node2 <none> <none> pc-job-d77m9 0/1 Pending 0 0s <none> <none> <none> <none> pc-job-d77m9 0/1 Pending 0 0s <none> node2 <none> <none> pc-job-d77m9 0/1 ContainerCreating 0 0s <none> node2 <none> <none> pc-job-vtln5 1/1 Running 0 1s 10.244.1.90 node1 <none> <none> pc-job-vdsgl 1/1 Running 0 2s 10.244.1.91 node1 <none> <none> pc-job-d77m9 1/1 Running 0 1s 10.244.2.107 node2 <none> <none> pc-job-vtln5 0/1 Completed 0 29s 10.244.1.90 node1 <none> <none> pc-job-vdsgl 0/1 Completed 0 29s 10.244.1.91 node1 <none> <none> pc-job-d77m9 0/1 Completed 0 28s 10.244.2.107 node2 <none> <none>可以看出,確實可以實現創建6個任務,同時并發3個執行,總體執行時間大概兩個周期即58秒左右即可完成
總結
以上是生活随笔為你收集整理的Kubernetes----Job控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: quartus频率计 时钟设置_频率计实
- 下一篇: 电气器件系列十:热继电器FR\KRE