- vừa được xem lúc

[k8s] Jobs, oneshot and parallel

0 0 22

Người đăng: Open Dev

Theo Viblo Asia

  • Jobs được thiết kế để quản lý công việc một cách hàng loạt, nơi các pods có thể thực thi một hoặc nhiều.
  • Mặc định, jobs là được thực thi 1 pod cho đến khi thành công và chấm dứt.
  • Trong jobs, có 3 loại đơn giản đó là one-shot, paralleworkqueue, trong bài này mình sẽ nói đến one-shotparallel.

One-shot

  • One-shot là jobs cung cấp một phương thức để chạy duy nhất 1 pod cho đến khi thành công và kết thúc.
  • Trong ví dụ, mình sẽ deploy 1 pod ubuntu và echo ra dòng chữ hello, i am opendev.
  • oneshot.yaml
apiVersion: batch/v1
kind: Job
metadata: name: ubuntu
spec: template: metadata: name: ubuntu spec: containers: - name: ubuntu image: ubuntu command: ["bash"] args: ["-c", "echo hello, i am opendev "] restartPolicy: Never
  • run câu lệnh:
kubectl apply -f oneshot.yaml 
  • kiểm tra xem jobs:
kubectl get jobs

  • kiểm tra xem pods:
kubectl get pods

  • Sau khi pod run complete, mình kiểm tra xem log của pod có phải là hello, i am opendev không, nếu có log như vậy là thành công rồi.

Parallelism

  • Bây giờ có 1 usecase đòi hỏi thời gian xử lý lâu, và muốn tăng tốc độ xử lý lên thì có thể dùng parallel.
  • Mình sẽ chạy parallel 1 lần là 3 pod, chạy 3 lần với 9 pod hoàn thành.
  • parallel.yaml
apiVersion: batch/v1
kind: Job
metadata: name: ubuntu
spec: parallelism: 3 completions: 9 template: metadata: name: ubuntu spec: containers: - name: ubuntu image: ubuntu command: ["bash"] args: ["-c", "echo hello, i am opendev "] restartPolicy: Never
  • Giải thích:
    • trong yaml cần thêm 2 thuộc tính trong spec: parallelism là số lượng pods thực hiện đồng thời, completions là số lượng pods cần phải hoàn thành.
  • run câu lệnh get pod
kubectl get pods

  • Kiểm tra job đã thực thi được bao nhiêu pod complete:
kubectl get jobs

  • Mình đã demo đơn giản về jobs: oneshotparallel, có gì thắc mắc thì liên hệ mình hỗ trợ thêm.

Cảm ơn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Phần 1: Giới thiệu về Kubernetes

Kubernetes là gì. Trang chủ: https://kubernetes.io/. Ai cần Kubernetes.

0 0 100

- vừa được xem lúc

Thực hành K8S trên Google Cloud

Kubernetes (K8S) trở nên quá phổ biến ở thời điểm hiện tại, ai cũng nói về nó. Trong bài hôm nay mình sẽ không đi quá nhiều vào các định nghĩa, mà đi thẳng vào thực tế để mọi người dễ hình dung.

0 0 34

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 49

- vừa được xem lúc

Kubernetes - deployment.yaml explained

Trong bài trước, mình có giới thiệu chạy các câu lệnh K8S bằng Command Line. Để tạo 1 deloyment đơn giản chỉ cần chạy lệnh.

0 0 91

- vừa được xem lúc

Tìm hiểu cơ bản về Kubernetes - K8s (Part 2): Minikube

Lời mở đầu. .

0 0 47

- vừa được xem lúc

ETCD - Bộ não của Kubernetes và cách cài đặt cụm ETCD Cluster (High Availability)

Hello anh em, sau vài ngày nghiên cứu đọc lại liệu cũng như cài cắm thủ công đủ thể loại, với vô số lỗi fail thì mình cũng cài đặt thành công cụm etcd cluster một cách thủ công. Trước giờ chuyên tạo c

0 0 44