Cấu hình Port Forwarding truy cập ứng dụng trong Kubernetes Cluster

33

Cấu hình Port Forwarding truy cập ứng dụng trong Kubernetes ClusterCuongquach.com | Kubectl port-foward sẽ giúp bạn truy cập và tương tác với những dịch vụ Pod đang được chạy trên Kubernetes Cluster từ localhost của bạn. Phương pháp này thường được sử dụng để debug các vấn đề phát sinh liên quan đến dịch vụ, mà không được phép public dịch vụ đó ra ngoài. Về Port-forwarding là gì bạn có thể tham khảo tại đây : https://en.wikipedia.org/wiki/Port_forwarding

Thao tác cấu hình Port-Forwarding với Kubernetes Cluster

Các mục đích của việc sử dụng Port Fowarding thường là :

  • Bạn có ứng dụng nội bộ, cần bảo mật,.. không cho public ra ngoài. Nên chỉ có thể truy cập từ máy chủ nội bộ qua VPN hay văn phòng.
  • Đó có thể là ứng dụng web, cũng có thể là ứng dụng database như redis, postgresql,..
  • Bạn có thể mở port forward từ localhost laptop đến dịch vụ nội bộ đó. Từ đấy giúp bạn quản lý từ laptop hoặc đơn giản là dễ dàng debug các vấn đề phát sinh với dịch vụ nội bộ đó thông quan port dịch vụ với port localhost (tunnel port forwarding)

Kubectl là một trong những công cụ chương trình lệnh chính dùng để tương tác quản lý các Kubernetes Cluster. Chương trình giúp bạn triển khai các ứng dụng, quản lý các thành phần hệ thống Kubernetes Cluster,…

Quy trình của hoạt động Port Forward với kubectl đơn giản như sau :

  • Người dùng sử dụng lệnh kubectl để khởi tạo Port-fowarding đến port của Pod/Deployment/Service trên Kubernetes Cluster.
  • Kubernetes API sẽ tiến hành khởi tạo một Tunnel Connection giữa localhost của bạn với resource đang chạy trên Kubernetes Cluster.
  • Các đối tượng trong Kubernetes Cluster bạn có thể tương tác qua Port-forwarding kubectl : Deployment/Pod/Service/ReplicaSet.

Cấu hình Port Forwarding với kubectl

Cú pháp lệnh port-foward sẽ giúp khởi tạo một Tunnel từ Pod được chỉ định đến localhost đang chạy lệnh port-forward. Từ đó bạn có thể truy cập ứng dụng dịch vụ thông qua port local đến port Pod.

Cú pháp:

Giờ chúng ta sẽ tạo một Deployment service để dễ thử nghiệm nhé. Mình sẽ chọn service Grafana, có giao diện để truy cập web dashboard từ localhost laptop thử nhé.

Sau đó bạn kiểm tra xem DeploymentPod Grafana đã chạy chưa :

Bình thường để có thể truy cập được Grafana Dashboard, thì dịch vụ này cần được cấu hình để có thể truy cập từ ngoài Kubernetes Cluster. Nhưng mặc định ban đầu bạn chỉ có thể truy cập từ bên trong Kubernetes Cluster vì Grafana đang được cấu hình ClusterIP.

Vì vậy, điều này giúp thực hành cho nhu cầu sử dụng Port Forwarding dễ hiểu hơn. Bằng cách thực hiện mở local port forwarding đến port web dashboard của dịch vụ Grafana.

Giờ ta đã có thông tin chính xác của NamespacePod/Deployment/Service Grafana đang chạy nhé ở các output lệnh trên.

+ Sử dụng port local forwarding cụ thể (:8080)

Chúng ta sẽ mở port-forwarding đến port 3000 của Pod Grafana với local host port là 8080.

hoặc port-forward đến Deployment Grafana.

hoặc port-foward đến Service Grafana.

Kết quả truy cập port 8080 trên laptop thử.

+ Sử dụng port local forwarding ngẫu nhiên

Nguồn: https://cuongquach.com/

LEAVE A REPLY

Please enter your comment!
Please enter your name here