Kubernetes - Việc làm

Chức năng chính của một công việc là tạo một hoặc nhiều nhóm và theo dõi sự thành công của các nhóm. Chúng đảm bảo rằng số lượng nhóm được chỉ định được hoàn thành thành công. Khi một số lần chạy nhóm thành công được chỉ định được hoàn thành, thì công việc được coi là hoàn thành.

Tạo công việc

Sử dụng lệnh sau để tạo một công việc:

apiVersion: v1
kind: Job ------------------------> 1
metadata:
   name: py
   spec:
   template:
      metadata
      name: py -------> 2
      spec:
         containers:
            - name: py ------------------------> 3
            image: python----------> 4
            command: ["python", "SUCCESS"]
            restartPocliy: Never --------> 5

Trong đoạn mã trên, chúng tôi đã xác định -

  • kind: Job → Chúng tôi đã định nghĩa loại này là Job sẽ cho biết kubectl rằng yaml tệp đang được sử dụng là để tạo một nhóm loại công việc.

  • Name:py → Đây là tên của mẫu mà chúng tôi đang sử dụng và thông số xác định mẫu.

  • name: py → chúng tôi đã đặt một cái tên là py trong thông số kỹ thuật của vùng chứa giúp xác định Pod sẽ được tạo ra từ nó.

  • Image: python → hình ảnh mà chúng ta sẽ kéo để tạo vùng chứa sẽ chạy bên trong nhóm.

  • restartPolicy: Never →Điều kiện khởi động lại hình ảnh này được đưa ra là không bao giờ có nghĩa là nếu vùng chứa bị giết hoặc nếu nó sai, thì nó sẽ không tự khởi động lại.

Chúng tôi sẽ tạo công việc bằng cách sử dụng lệnh sau với yaml được lưu với tên py.yaml.

$ kubectl create –f py.yaml

Lệnh trên sẽ tạo một công việc. Nếu bạn muốn kiểm tra trạng thái của công việc, hãy sử dụng lệnh sau.

$ kubectl describe jobs/py

Lệnh trên sẽ tạo một công việc. Nếu bạn muốn kiểm tra trạng thái của công việc, hãy sử dụng lệnh sau.

Công việc đã lên lịch

Công việc đã lên lịch trong Kubernetes sử dụng Cronetes, đảm nhận công việc của Kubernetes và khởi chạy chúng trong cụm Kubernetes.

  • Lập lịch công việc sẽ chạy một nhóm tại một thời điểm xác định.
  • Một công việc nhại được tạo cho nó tự động gọi nó.

Note - Tính năng của công việc đã lên lịch được hỗ trợ bởi phiên bản 1.4 và API betch / v2alpha 1 được bật bằng cách chuyển –runtime-config=batch/v2alpha1 trong khi đưa lên máy chủ API.

Chúng tôi sẽ sử dụng cùng một yaml mà chúng tôi đã sử dụng để tạo công việc và biến nó thành công việc theo lịch trình.

apiVersion: v1
kind: Job
metadata:
   name: py
spec:
   schedule: h/30 * * * * ? -------------------> 1
   template:
      metadata
         name: py
      spec:
         containers:
         - name: py
         image: python
         args:
/bin/sh -------> 2
-c
ps –eaf ------------> 3
restartPocliy: OnFailure

Trong đoạn mã trên, chúng tôi đã xác định -

  • schedule: h/30 * * * * ? → Lên lịch để công việc chạy sau mỗi 30 phút.

  • /bin/sh: Điều này sẽ nhập vào vùng chứa với / bin / sh

  • ps –eaf → Sẽ chạy lệnh ps -eaf trên máy và liệt kê tất cả quá trình đang chạy bên trong một vùng chứa.

Khái niệm công việc đã lên lịch này rất hữu ích khi chúng ta đang cố gắng xây dựng và chạy một tập hợp các nhiệm vụ tại một thời điểm xác định và sau đó hoàn thành quy trình.