Bài viết này sẽ giúp bạn hiểu rõ hơn về K8s, cách thiết lập Kubernetes trên thiết bị cá nhân và cách khởi chạy ứng dụng trong cụm Kubernetes. Đồng thời, bài viết cũng sẽ giới thiệu về các nhà cung cấp Kubernetes được quản lý phổ biến nhất để bạn có thể chạy ứng dụng của mình ở quy mô lớn.
K8s: Khái niệm và ứng dụng trong thế giới Container
Bạn có thể đã bắt gặp thuật ngữ k8s ở nhiều nguồn khác nhau và tự hỏi nó có nghĩa là gì? Thực chất, k8s là viết tắt của Kubernetes. Từ viết tắt này bao gồm:
"k" là chữ cái đầu tiên của Kubernetes, "8" là số lượng chữ cái giữa chữ cái đầu tiên và chữ cái cuối cùng trong từ, và "s" là chữ cái cuối cùng.
Bây giờ, hãy cùng tìm hiểu Kubernetes được sử dụng để làm gì để hiểu rõ hơn về điểm mạnh cốt lõi và lĩnh vực ứng dụng của nó.
Container đang ngày càng trở nên phổ biến. Sử dụng các công nghệ container như Docker, bạn có thể khởi động các ứng dụng trong một môi trường biệt lập hoàn toàn chỉ bằng một lệnh duy nhất. Kubernetes được sử dụng để điều phối container, kết hợp nhiều máy thành một cụm và phân phối các container trạng thái.
Trong bài đăng trên blog này, bạn sẽ tìm hiểu:
- Cách thử nghiệm Kubernetes trên thiết bị cục bộ của bạn,
- Cách khởi chạy ứng dụng trong cụm Kubernetes,
- Các nhà cung cấp Kubernetes được quản lý phổ biến nhất để chạy ứng dụng của bạn ở quy mô lớn.
Hướng dẫn này sẽ chủ yếu tập trung vào việc sử dụng shell thay vì UI vì nó cho phép bạn sử dụng tất cả các ví dụ trong cụm Kubernetes cục bộ và từ xa.
Thiết lập Kubernetes trên thiết bị cá nhân: Đơn giản hóa với Docker
Cách dễ nhất để bắt đầu là cài đặt Docker. Sau khi khởi động, bạn có thể mở Docker, vào Settings -> Kubernetes và bật Kubernetes cục bộ. Sau khi xác nhận, cụm Kubernetes của bạn sẽ khởi động.
Cách dễ nhất để giao tiếp với cụm Kubernetes là sử dụng kubectl. Vì vậy, nếu bạn chưa cài đặt kubectl, hãy cài đặt nó.
Ngoài ra, tôi khuyên bạn nên thiết lập kubectx, cho phép bạn chuyển đổi giữa các cụm khác nhau. Để triển khai Kubernetes dễ dàng, bạn cũng nên cài đặt Helm, cho phép bạn triển khai các ứng dụng phức tạp hơn, bao gồm nhiều phần, chỉ bằng một lệnh duy nhất.
Bây giờ, Docker hiển thị rằng cụm Kubernetes đã sẵn sàng trong cài đặt của bạn, sau đó bạn có thể bắt đầu một số ứng dụng. Hãy xem tất cả các ngữ cảnh Kubernetes có sẵn:
# Show all available contexts
kubectx > development
> docker-desktop # Select local docker desktop context
kubectx docker-desktop
Khởi chạy ứng dụng trong cụm Kubernetes: Ví dụ với JupyterHub
Hãy thiết lập JupyterHub cho phép nhóm sử dụng Jupyter Notebooks, một trong những nền tảng phổ biến nhất cho học máy và Python.
# add helm repository
helm repo add jupyterhub https://jupyterhub.github.io/helm-chart/ # start containers
helm install my-jupyterhub jupyterhub/jupyterhub --version 1.2.0 # after a few minutes, get information about the Kubernetes service
kubectl --namespace=default get svc proxy-public NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
proxy-public LoadBalancer 10.109.132.29 localhost 80:31480/TCP 31m
Như đã in, IP bên ngoài là localhost và được hiển thị trên cổng 80. Khi các container được khởi động, bạn có thể mở http://localhost và đăng nhập bằng tên người dùng “admin” và không cần mật khẩu.
Như bạn có thể thấy, việc chạy một ứng dụng toàn diện hơn với một vài dòng lệnh là vô cùng dễ dàng. Nếu bạn muốn thử thêm các ví dụ, hãy xem bài đăng trên blog của tôi về Helm.
Để dọn dẹp tài nguyên, bạn nên xóa ứng dụng đang chạy:
helm uninstall my-jupyterhub release "my-jupyterhub" uninstalled
Các cụm Kubernetes được quản lý phổ biến nhất: Lựa chọn tối ưu cho doanh nghiệp
Khi bạn muốn chạy một ứng dụng và cung cấp ứng dụng đó cho những người khác, bạn phải chạy một cụm Kubernetes có sẵn công khai. Bạn không nên tự mình chạy cụm của mình nếu bạn không phải là chuyên gia.
Thay vào đó, bạn có thể sử dụng phiên bản được quản lý của cụm Kubernetes, điều đó có nghĩa là hầu hết việc bảo trì bản thân cụm được thực hiện bởi nhà cung cấp bên ngoài. Bạn chỉ cần triển khai container và mọi thứ sẽ hoạt động.
Khuyến nghị của tôi là sử dụng Google Kubernetes Cluster (GKE), cụm được quản lý từ Google. Google là nhà thiết kế ban đầu của Kubernetes và được biết là cung cấp trải nghiệm Kubernetes vững chắc. Họ cũng cung cấp một phiên bản được quản lý cực đoan hơn được gọi là GKE Autopilot, cho phép bạn thanh toán theo giờ và bộ nhớ của container.
Tuy nhiên, trên thực tế, các nhóm sử dụng cụm Kubernetes tiêu chuẩn đi kèm với nhiều tích hợp hơn của các dịch vụ được quản lý khác, những dịch vụ này chưa có sẵn nếu bạn sử dụng Autopilot. Ví dụ: bạn có thể tạo Tài khoản dịch vụ, Bản ghi DNS hoặc Chứng chỉ được quản lý bằng cách sử dụng tài nguyên Kubernetes bằng cách sử dụng Trình kết nối cấu hình.
Bạn có thể làm theo hướng dẫn đơn giản của Google để thiết lập cụm GCP Kubernetes và triển khai ứng dụng ví dụ trong vài phút.
Có nhiều cụm Kubernetes được quản lý khác như Elastic Kubernetes Service (EKS) từ Amazon, Azure Kubernetes Service (AKS) từ Microsoft hoặc Bizfly Kubernetes Engine từ Bizfly Cloud. Cho dù bạn thích loại nào đi chăng nữa, thường thì bạn nên sử dụng cụm Kubernetes được quản lý từ nhà cung cấp đám mây hiện tại của bạn.
Cảm ơn các bạn đã theo dõi bài viết vừa rồi.