kubernetes

Hình ảnh Kubernetes (Docker) là các khối xây dựng chính của Cơ sở hạ tầng được chứa đựng. Hiện tại, chúng tôi chỉ hỗ trợ Kubernetes hỗ trợ hình ảnh Docker. Mỗi vùng chứa trong một nhóm có hình ảnh Docker của nó chạy bên trong nó.

Khi chúng ta đang định cấu hình một nhóm, thuộc tính hình ảnh trong tệp cấu hình có cùng cú pháp như lệnh Docker. Tệp cấu hình có một trường để xác định tên hình ảnh mà chúng tôi định lấy từ sổ đăng ký.

Sau đây là cấu trúc cấu hình chung sẽ kéo hình ảnh từ sổ đăng ký Docker và triển khai vào vùng chứa Kubernetes.

apiVersion: v1
kind: pod
metadata:
   name: Tesing_for_Image_pull -----------> 1
   spec:
      containers:
         - name: neo4j-server ------------------------> 2
         image: <Name of the Docker image>----------> 3
         imagePullPolicy: Always ------------->4
         command: ["echo", "SUCCESS"] ------------------->

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

  • name: Tesing_for_Image_pull – Tên này được đặt để xác định và kiểm tra tên của vùng chứa sẽ được tạo sau khi kéo hình ảnh từ sổ đăng ký Docker.
  • name: neo4j-server – Đây là tên được đặt cho vùng chứa mà chúng tôi đang cố gắng tạo. Giống như chúng tôi đã cung cấp cho máy chủ neo4j.
  • image: <Tên của hình ảnh Docker> – Đây là tên của hình ảnh mà chúng tôi đang cố gắng lấy từ Docker hoặc sổ đăng ký nội bộ của hình ảnh. Chúng tôi cần xác định một đường dẫn đăng ký hoàn chỉnh cùng với tên hình ảnh mà chúng tôi đang cố gắng kéo.
  • imagePullPolicy – Luôn luôn – Chính sách kéo hình ảnh này xác định rằng bất cứ khi nào chúng tôi chạy tệp này để tạo vùng chứa, nó sẽ kéo lại cùng một tên.
  • command: [“echo”, “SUCCESS”] – Với điều này, khi chúng ta tạo vùng chứa và nếu mọi thứ suôn sẻ, nó sẽ hiển thị thông báo khi chúng ta truy cập vùng chứa.
Kubernetes - Hình ảnh

Để kéo hình ảnh và tạo vùng chứa, chúng ta sẽ chạy lệnh sau.

$ kubectl create –f Tesing_for_Image_pull

Sau khi chúng tôi tìm nạp nhật ký, chúng tôi sẽ nhận được kết quả là thành công

$ kubectl log Tesing_for_Image_pull

Lệnh trên sẽ tạo ra kết quả là thành công hoặc chúng ta sẽ nhận được kết quả là thất bại.Lưu ý – Bạn nên tự mình thử tất cả các lệnh.

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 –

  • loại: Công việc → Chúng tôi đã định nghĩa loại là Công việc sẽ cho kubectl biết rằng tệp yaml đang được sử dụng để tạo một nhóm loại công việc.
  • Tên: 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 tên là py dưới 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ó.
  • Hình ảnh: 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ị hủy hoặc nếu nó là false, 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 , công việc này sẽ nhận công việc của Kubernetes và khởi chạy chúng trong cụm Kubernetes.

Kubernetes - Hình ảnh
  • 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ó.

Lưu ý – Tính năng của công việc đã lên lịch được phiên bản 1.4 hỗ trợ và API betch / v2alpha 1 được bật bằng cách chuyển –runtime-config = batch / v2alpha1 trong khi hiển thị 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 –

  • lịch trình: 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.

Kubernetes – Nhãn & Bộ chọn (xem thêm)

Trả lời