Cung cấp các cụm Kubernetes trên Linode với Terraform

924
18-08-2021
Cung cấp các cụm Kubernetes trên Linode với Terraform

Việc tạo các cụm Kubernetes trên Linode Kubernetes Engine (LKE) với Linode CLI và Terraform không phải ai cũng biết. Trong bài viết này, Bizfly Cloud sẽ hướng dẫn bạn cách tạo ba cụm dev, staging và prod hoàn chỉnh với bộ điều khiển Ingress sẵn sàng phục vụ lưu lượng truy cập trực tiếp.

Linode Kubernetes Engine (LKE) là một dịch vụ Kubernetes được quản lý, có nghĩa là nền tảng Linode hoàn toàn chịu trách nhiệm quản lý mặt phẳng điều khiển cụm.

Linode Kubernetes Engine sẽ:

- Quản lý các thành phần API Kubernetes.

- Quản lý và chạy cơ sở dữ liệu ETCD.

- Chạy các nút mặt phẳng điều khiển Kubernetes, có thể là đơn hoặc đa vùng.

- Cung cấp khả năng sẵn sàng cao trong trường hợp nút bị lỗi.

- Quy mô tự động và theo tải.

- Chăm sóc bảo mật cụm tổng thể, chứng chỉ và khóa.

Bốn tuỳ chọn phổ biến để cung cấp một cụm LKE

Linode cung cấp bốn tùy chọn để chạy và triển khai một cụm LKE:

- Có thể tạo một cụm thông qua trình quản lý đám mây LKE dựa trên web

- Có thể sử dụng API Linode để tạo một cụm theo chương trình

- Có thể sử dụng tiện ích dòng lệnh LKE.

- C thể xác định cụm bằng cách sử dụng mã với một công cụ như Terraform.

Tuy nhiên, có rất nhiều tùy chọn cấu hình và màn hình mà bạn phải hoàn thành trước khi sử dụng cụm. Do đó, khi tạo cụm theo cách thủ công hãy đảm bảo rằng bạn đã không quên những yếu tố này:

+ Không quên thay đổi một trong các thông số?

+ Có thể lặp lại chính xác các bước tương tự trong khi tạo một cụm cho các môi trường khác không?

+ Khi có một thay đổi, bạn có thể áp dụng các sửa đổi tương tự theo trình tự cho tất cả các cụm mà không có bất kỳ sai lầm nào?

+ Quá trình thông qua giao diện người dùng dễ xảy ra lỗi và không mở rộng quy mô tốt nếu bạn có nhiều hơn một cụm duy nhất.

Thiết lập Linode CLI

Trước khi bắt đầu tạo các cụm bạn nên cài đặt Linode CLI cho mình.

Sau khi đã hoàn tất cài đặt hãy tiến hành nhập lệnh:

$ linode-cli show-users

Welcome to the Linode CLI. This will walk you through some initial setup.

$

Sau khi nhấn enter, trang web Linode sẽ nhắc bạn đăng nhập và xác thực. Sau khi xác thực, bạn có thể quay lại thiết bị đầu cuối để hoàn tất phần còn lại của quá trình thiết lập.

Để xác minh thiết lập, bạn có thể liệt kê các khu vực khả dụng bằng cách:

Cung cấp các cụm Kubernetes trên Linode với Terraform - Ảnh 1.

Cung cấp cụm LKE theo chương trình

Linode cũng cung cấp một cách bổ sung để cung cấp tài nguyên trên đám mây. Tùy chọn đó có lập trình, với các yêu cầu HTTP tiêu chuẩn được gửi đến API Linode .

Các điểm cuối API cung cấp tính linh hoạt cao cho việc quản lý cơ sở hạ tầng và dịch vụ của bạn. 

Linode CLI cung cấp một lệnh:

Cung cấp các cụm Kubernetes trên Linode với Terraform - Ảnh 2.

Tiếp theo hãy xuất mã thông báo dưới dạng một biến:

$ export TOKEN=74d9f518af26ffb4...

Bây giờ bạn có thể thử truy xuất các cụm LKE có sẵn bằng:

$ curl -H "Authorization: Bearer $TOKEN" \

  https://api.linode.com/v4/lke/clusters

{"data": [], "page": 1, "pages": 1, "results": 0}

$

Trường dữ liệu trống, có nghĩa là bạn chưa có bất kỳ cụm nào đang chạy.

Hãy triển khai một cụm có cùng thông số kỹ thuật với cụm trước:

$ curl -H "Content-Type: application/json" \

  -H "Authorization: Bearer $TOKEN" \

  -X POST -d '{

    "label": "learnk8s",

    "region": "eu-west",

    "k8s_version": "1.20",

    "node_pools": [

      {

        "type": "g6-standard-2",

        "count": 3

      }

    ]

  }' \

  https://api.linode.com/v4/lke/clusters

{

  "id": 22806,

  "status": "ready",

  "created": "2021-03-28T18:59:08",

  "updated": "2021-03-28T18:59:08",

  "label": "learnk8s",

  "region": "eu-west",

  "k8s_version": "1.20",

  "tags": []

}

$

Nếu muốn, bạn có thể kết nối với nó bằng lệnh trước đó.

$ linode-cli lke kubeconfig-view 22806 --text | tail +2 | base64 -d

apiVersion: v1

kind: Config

preferences: {}

clusters:

- cluster:

    certificate-authority-data: LS...

# truncated output

$

Lưu đầu ra dưới dạng kubeconfig và xuất nó dưới dạng KUBECONFIG biến môi trường.

$ export KUBECONFIG=<path to your kubeconfig>

Lệnh Terraform

Trong cùng một thư mục chạy:

$ terraform init

Lệnh khởi tạo Terraform và thực hiện một số tác vụ quan trọng:

- Tải xuống nhà cung cấp Linode cần thiết để dịch các hướng dẫn Terraform thành các lệnh gọi API.

- Tạo thêm hai thư mục cũng như một tệp trạng thái. Tệp trạng thái được sử dụng để theo dõi các tài nguyên đã được tạo.

Tạo một cụm LKE bằng Terraform.

Đầu tiên:

$ terraform plan

Plan: 1 to add, 0 to change, 0 to destroy.

$

Terraform sẽ thực hiện quá trình chạy và sẽ nhắc bạn với một bản tóm tắt chi tiết về những tài nguyên sắp tạo.

Bạn nên kiểm tra kỹ và xác minh điều gì sẽ xảy ra với cơ sở hạ tầng của mình trước khi thực hiện các thay đổi.

Khi đã xác minh xong bạn tiếp tục thực hiện:

$ terraform apply

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

$

Sau khi xác nhận Yes, Terraform sẽ tạo cụm.

Vậy là bạn đã sử dụng cơ sở hạ tầng làm mã và Terraform để cung cấp một cụm Kubernetes.

Ngoài ra, bạn có thể xóa cụm bằng cách:

$ terraform destroy

Apply complete! Resources: 0 added, 0 changed, 1 destroyed.

$

Terraform sẽ in ra một danh sách các tài nguyên đã sẵn sàng để xóa. Sau khi bạn xác nhận, Terraform sẽ phá hủy tất cả tài nguyên.

Trên đây là cách cung cấp các cụm Kubernetes trên Linode với Terraform đơn giản nhất. Hãy tiếp tục theo dõi Bizfly Cloud để cập nhật những công nghệ mới nhất mỗi ngày.

Có thể bạn quan tâm: Những điều cơ bản cần biết về Cụm Kubernetes

SHARE