0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng Dẫn Cài Đặt và Sử Dụng Argo Workflows Trên Kubernetes

Đăng vào 2 tuần trước

• 5 phút đọc

Chủ đề:

Kubernetes

Hướng Dẫn Cài Đặt và Sử Dụng Argo Workflows Trên Kubernetes

Argo Workflows là một công cụ mã nguồn mở mạnh mẽ được thiết kế để điều phối và quản lý nhiều job trong môi trường Kubernetes (K8s). Bài viết này sẽ hướng dẫn bạn cách cài đặt Argo Workflows trên cụm Kubernetes, đồng thời cung cấp thông tin về các template có sẵn và cách bạn có thể sử dụng chúng để tạo ra quy trình làm việc (Workflow) hiệu quả trong Kubernetes.

Argo Workflows: Giới Thiệu Các Khái Niệm Cơ Bản

1. Workflow

Workflow là tài nguyên trung tâm trong Argo Workflows, nó định nghĩa chuỗi quy trình công việc sẽ được thực hiện và lưu trữ trạng thái của quy trình đó. Workflow có thể mô hình hóa logic phức tạp thông qua đồ thị theo chu trình có hướng (DAG) hoặc các bước tuần tự, giúp nắm bắt các phụ thuộc giữa các template.

2. Template

Template là một khái niệm quan trọng trong Argo Workflows, được sử dụng để định nghĩa các bước thực hiện trong một workflow. Có ba loại template chính:

  • Container: Định nghĩa một bước với một container. Ví dụ:

    yaml Copy
    - name: hello-world
        container:
          image: alpine:latest
          command: [sh, -c]
          args: ["echo hello world"]
  • Script: Chạy một script trong một container. Ví dụ:

    yaml Copy
    - name: factorial
        inputs:
          parameters:
          - name: num
        script:
          image: python:alpine 3.6
          command: [python]
          source: |
            def factorial(n):
              if n == 0:
                return 1
              else:
                return n * factorial(n-1)
            print(factorial(int({{inputs.parameters.num}})))
  • Resource: Quản lý tài nguyên trong cụm Kubernetes. Ví dụ:

    yaml Copy
    - name: create-configmap
        resource:
          action: create
          manifest: |
            apiVersion: v1
            kind: ConfigMap
            metadata:
              name: my-config
            data:
              foo: bar
              hello: world

Hướng Dẫn Cài Đặt Argo Workflows

Yêu Cầu Bắt Buộc

  • Một cụm Kubernetes hoạt động.
  • Kiến thức cơ bản về Kubernetes.
  • Công cụ dòng lệnh kubectl.

Bước 1: Cài Đặt Argo Workflows

  1. Tạo một namespace riêng cho Argo Workflows trong Kubernetes:

    bash Copy
    kubectl create namespace argo
  2. Cài đặt phiên bản mới nhất của Argo Workflows:

    bash Copy
    kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v<VERSION>/install.yaml

    (Trong hướng dẫn này, bạn nên sử dụng phiên bản v3.5.0).

  3. Kiểm tra tình trạng cài đặt:

    bash Copy
    kubectl get all -n argo

Bước 2: Khởi Động Giao Diện Người Dùng Argo

Để sử dụng giao diện người dùng của Argo:

  1. Chỉnh sửa chế độ xác thực:

    bash Copy
    kubectl patch deployment argo-server --namespace argo --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/args", "value": ["server", "--auth-mode=server"]}]'
  2. Cấu hình RBAC để cấp quyền quản trị cho Argo:

    bash Copy
    kubectl create rolebinding argo-default-admin --clusterrole=admin --serviceaccount=argo:default -n argo
  3. Chuyển tiếp cổng của giao diện web:

    bash Copy
    kubectl -n argo port-forward deployment/argo-server 2746:2746

    Truy cập giao diện web tại địa chỉ http://localhost:2746.

Tạo Workflow Mới và Các Thao Tác Cơ Bản

  1. Tạo tệp Workflow:

    bash Copy
    nano argo-workflow.yaml
  2. Thêm nội dung vào tệp:

    yaml Copy
    apiVersion: argoproj.io/v1alpha1
    kind: Workflow
    metadata:
        name: demo-workflow
    spec:
        entrypoint: main
        templates:
        - name: main
        container:
            image: busybox
            command: ["/bin/sh"]
            args: ["-c", "echo 'The first step of the Workflow'"]
  3. Áp dụng Workflow vào cụm:

    bash Copy
    kubectl -n argo create -f argo-workflow.yaml
  4. Liệt kê tất cả các workflow:

    bash Copy
    kubectl -n argo get wf
  5. Xem nhật ký Pod cho Workflow:

    bash Copy
    kubectl -n argo logs demo-workflow
  6. Xóa Workflow:

    bash Copy
    kubectl -n argo delete wf workflow-name
  7. Tạm dừng hoặc tiếp tục Workflow:

    bash Copy
    kubectl -n argo suspend wf workflow-name
    kubectl -n argo resume wf workflow-name
  8. Gửi Workflow bằng Argo CLI:

    bash Copy
    argo submit -n argo workflow.yaml

Bạn có thể tìm hiểu thêm thông tin về Argo Workflows trong tài liệu chính thức.

Kết Luận

Qua bài viết này, bạn đã nắm vững kiến thức cơ bản về Argo Workflows và cách thức cài đặt cũng như sử dụng chúng trong môi trường Kubernetes. Argo Workflows giúp bạn quản lý và thực thi các tác vụ một cách linh hoạt và hiệu quả, nhờ vào khả năng cấu hình và mở rộng mà công cụ này mang lại. Hãy tận dụng Argo Workflows để tối ưu hóa quy trình làm việc của bạn trong Kubernetes.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào