0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng dẫn chi tiết thiết lập cụm Kubernetes nội bộ với KFTray, Kind và Terraform

Đăng vào 1 tháng trước

• 4 phút đọc

Hướng dẫn chi tiết thiết lập cụm Kubernetes nội bộ với KFTray, Kind và Terraform

Giới thiệu

Bài viết này sẽ hướng dẫn bạn cách thiết lập một cụm Kubernetes nội bộ (local Kubernetes cluster) một cách hiệu quả và an toàn bằng cách sử dụng Kind, Terraform và KFTray. Với phương pháp này, chúng ta sẽ giữ các dịch vụ bên trong cụm mà không cần expose ra bên ngoài, giúp giảm thiểu rủi ro bảo mật và độ phức tạp trong cấu hình.

Tại sao nên giữ các dịch vụ bên trong cụm?

Việc expose service ra bên ngoài có thể làm tăng rủi ro bảo mật và độ phức tạp trong quản lý. Đối với phát triển cục bộ hoặc trong môi trường an toàn, việc giữ tất cả các dịch vụ bên trong cụm thường mang lại lợi ích tốt hơn. Chúng ta có thể sử dụng lệnh kubectl port-forward và tự động hóa quy trình này bằng KFTray để truy cập các dịch vụ mà không cần phải expose chúng ra internet.

Chuẩn bị công cụ

Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt những công cụ cần thiết dưới đây:

  • Docker: Công cụ ảo hóa cần thiết cho Kind.
  • Terraform (v1.9.5 trở lên): Công cụ quản lý hạ tầng dưới dạng mã.
  • KFTray: Bạn có thể chọn giữa phiên bản GUI (Giao diện người dùng đồ họa) hoặc TUI (Giao diện người dùng đầu cuối).

Sao chép kho lưu trữ mã nguồn

Trước hết, bạn cần sao chép kho lưu trữ chứa mã Terraform bằng lệnh sau:

bash Copy
git clone https://github.com/hcavarsan/kftray-k8s-tf-example
cd kftray-k8s-tf-example/terraform

Hiểu về mã Terraform

Mã Terraform trong kho lưu trữ này sẽ tự động hóa các tác vụ như sau:

  • Tạo thú cụm Kubernetes sử dụng Kind.
  • Triển khai các Helm chart cho Argo CD, Prometheus, Alertmanager, Grafana, và Jaeger.
  • Thiết lập cấu hình dịch vụ cho KFTray để tự động import các thiết lập port-forward.

Cấu trúc dự án

Dưới đây là tổ chức của dự án:

Copy
kftray-k8s-tf-example
├── terraform
│   ├── helm.tf
│   ├── outputs.tf
│   ├── locals.tf
│   ├── providers.tf
│   ├── variables.tf
│   ├── templates
│   │   ├── argocd-values.yaml.tpl
│   │   ├── grafana-values.yaml.tpl
│   │   ├── jaeger-values.yaml.tpl
│   │   └── prometheus-values.yaml.tpl
│   └── kind.tf
├── Makefile
└── README.md

providers.tf

Tệp này xác định các nhà cung cấp Terraform mà chúng ta sẽ sử dụng:

hcl Copy
tfmark {
  required_version = ">= 1.0.0"

  required_providers {
    kind = { source = "tehcyx/kind" version = "0.4.0" }
    helm = { source = "hashicorp/helm" version = ">= 2.0.0" }
    kubernetes = { source = "hashicorp/kubernetes" version = ">= 2.0.0" }
    template = { source = "hashicorp/template" version = ">= 2.0.0" }
  }
}

Trong đó:

  • kind: Quản lý các cụm Kind.
  • kubernetes: Tương tác với cụm Kubernetes.
  • helm: Triển khai các Helm chart.

variables.tf

Tệp này xác định các biến sử dụng trong cấu hình Terraform:

hcl Copy
variable "cluster_name" {
  description = "Tên của cụm Kind"
  type        = string
  default     = "kftray-cluster"
}

Áp dụng cấu hình Terraform

Để áp dụng cấu hình Terraform và thiết lập cụm, bạn chỉ cần chạy lệnh sau:

bash Copy
make apply

Lệnh này sẽ:

  • Khởi tạo Terraform.
  • Tạo cụm Kind.
  • Triển khai các Helm chart.

Cài đặt KFTray

Truy cập trang GitHub của KFTray và làm theo hướng dẫn cài đặt cho hệ điều hành của bạn tại đây.

Nhập cấu hình Port-Forward vào KFTray

Sử dụng KFTray GUI

  1. Mở KFTray và nhấp vào biểu tượng khay để mở cửa sổ chính.
  2. Nhấp vào biểu tượng menu ở góc dưới bên trái.
  3. Chọn "Auto Import".
  4. Nhấp vào "Set kubeconfig" và chọn tệp kubeconfig được tạo bởi Terraform.
  5. Chọn context kftray-cluster từ menu dropdown.
  6. Nhấp vào "Import" để tải cài đặt port-forward.

Sử dụng Kftui (Giao diện đầu cuối)

  1. Đặt biến môi trường KUBECONFIG:
    bash Copy
    export KUBECONFIG="~/.kube/kind-config-kftray-cluster"
  2. Bắt đầu Kftui:
    bash Copy
    kftui
  3. Nhấn Tab để truy cập menu và chọn "Auto Import".
  4. Nhấn Ctrl+A để chọn tất cả cấu hình.
  5. Nhấn F để bắt đầu tất cả port forward.

Truy cập các dịch vụ của bạn

Với việc thiết lập port forwarding, bạn có thể truy cập các dịch vụ từ máy tính nội bộ như sau:

  • Argo CD: http://localhost:16080
  • Prometheus: http://localhost:19090
  • Alertmanager: http://localhost:19093
  • Grafana: http://localhost:13080
  • Jaeger: http://localhost:15090

Tùy chỉnh cài đặt KFTray

1. Điều chỉnh cài đặt Port Forwarding

Bạn có thể tùy chỉnh cách KFTray chuyển tiếp cổng bằng cách chỉnh sửa tệp locals.tf.

2. Dọn dẹp tài nguyên

Nếu bạn muốn hủy cụm và xóa tất cả tài nguyên, hãy chạy:

bash Copy
make destroy

Điều này sẽ giúp xóa bỏ cụm và tài nguyên được tạo bởi Terraform.

Kết luận

Thông qua việc giữ tất cả các dịch vụ trong cụm và sử dụng KFTray để chuyển tiếp cổng, chúng ta đã tạo ra một môi trường phát triển an toàn và đơn giản hơn. Quy trình này cực kỳ hữu ích cho việc phát triển cục bộ và bảo mật các dịch vụ của bạn mà không cần phải expose ra bên ngoài.
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