Cụm Kubernetes là gì?

Cụm Kubernetes (K8s) là một nhóm các nút điện toán, hay còn gọi là máy phụ, chạy các ứng dụng được container hóa. Container hóa là một quy trình triển khai phần mềm và duy trì thời gian hoạt động với khả năng đóng gói mã của ứng dụng cùng tất cả các tệp và thư viện cần thiết để ứng dụng đó chạy trên bất kỳ cơ sở hạ tầng nào. Kubernetes là một phần mềm điều phối bộ chứa nguồn mở mà bạn có thể quản lý, phối hợp và lên lịch cho các bộ chứa trên quy mô lớn. Kubernetes đặt các bộ chứa vào các pod và chạy chúng trên các nút. Một cụm Kubernetes có ít nhất một nút chủ chạy một pod bộ chứa và một mặt phẳng điều khiển có chức năng quản lý cụm. Khi bạn triển khai Kubernetes, về cơ bản là bạn đang chạy một cụm Kubernetes.

Các nguyên tắc cơ bản của Kubernetes là gì?

Để hiểu về cụm Kubernetes, trước tiên bạn cần hiểu các nguyên tắc cơ bản của việc container hóa với Kubernetes. 

Bộ chứa là ứng dụng hoặc vi dịch vụ được đóng gói cùng các phần phụ thuộc, có thể chạy như một ứng dụng và môi trường khép kín duy nhất. Các ứng dụng hiện đại có kiến trúc vi dịch vụ phân tán, trong đó mọi ứng dụng (bao gồm hàng trăm hoặc thậm chí hàng nghìn thành phần phần mềm rời rạc) chạy độc lập. Mỗi thành phần (hoặc vi dịch vụ) thực hiện một chức năng độc lập duy nhất để tăng cường tính mô-đun của mã. Bằng cách tạo các bộ chứa độc lập cho mỗi dịch vụ, có thể triển khai và phân phối các ứng dụng trên một số máy. Bạn có thể tăng hoặc giảm từng khối lượng công việc vi dịch vụ và khả năng tính toán để tối đa hóa hiệu quả của ứng dụng.

Kubernetes là phần mềm điều phối bộ chứa mã nguồn mở giúp đơn giản hóa việc quản lý các bộ chứa trên quy mô lớn. Kubernetes có thể lên lịch, chạy, khởi động, tắt các bộ chứa và tự động hóa các chức năng quản lý. Các nhà phát triển nhận được nhiều lợi ích từ việc container hóa trên quy mô lớn mà không phải trả chi phí quản trị.

Tiếp theo, chúng ta hãy xem xét một số khái niệm cốt lõi về Kubernetes.

Pod

Pod là đơn vị triển khai tiêu chuẩn trong Kubernetes. Pod chứa một hoặc nhiều bộ chứa, ngoài ra, bên trong pod, các bộ chứa dùng chung một tài nguyên hệ thống chẳng hạn như bộ nhớ và mạng. Mỗi pod có một địa chỉ IP duy nhất. 

Các bộ chứa trong pod không được cách ly với nhau. Hãy xem pod tương tự như một máy ảo (VM), trong đó các bộ chứa giống với các ứng dụng chạy trên VM. Có thể sắp xếp các pod và nhóm pod bằng cách gắn nhãn thuộc tính cho chúng, chẳng hạn như nhãn “dev” hoặc “prod” cho loại môi trường. 

Nút

Nút là máy chạy pod. Nút có thể là một máy chủ vật lý hoặc ảo, chẳng hạn như phiên bản Amazon EC2. Nút bao gồm các thành phần sau đây:

  • Kubelet để quản lý nút và bộ chứa
  • Kube-proxy cho proxy mạng
  • Thời gian hoạt động của bộ chứa

Phải cài đặt thời gian hoạt động tương thích của bộ chứa trên nút để chạy các bộ chứa. Kubernetes hỗ trợ một số thời gian hoạt động của bộ chứa, chẳng hạn như bộ chứa và Giao diện thời gian hoạt động của bộ chứa Kubernetes. 

Thiết lập và triển khai bản sao

Pod là một tạo tác độc lập và khi nút của pod ngừng hoạt động, pod sẽ không tự động khởi động lại. Trong Kubernetes, nếu một pod hoặc các pod được nhóm lại thành một tập hợp bản sao, bạn có thể chỉ định các tập hợp bản sao sẽ luôn chạy trên các nút. Điều này rất quan trọng để tăng/giảm quy mô, đồng thời đảm bảo tính liên tục của các ứng dụng và dịch vụ. 

Deployment là đối tượng quản lý Kubernetes để triển khai ứng dụng, cũng như cập nhật hoặc khôi phục ứng dụng mà không cần tạm thời ngừng hoạt động.

Dịch vụ và Ingress

Sử dụng dịch vụ Kubernetes để hiển thị một pod hoặc một nhóm các pod trên mạng, thông qua điểm cuối, để tương tác tuân theo các quy tắc truyền thông mạng tiêu chuẩn. Đối với quyền truy cập Internet công cộng, Kubernetes Ingress được gắn vào một dịch vụ, sau đó liên kết với một hoặc nhiều pod.

Cụm Kubernetes gồm các thành phần nào?

Cụm Kubernetes là một nhóm gồm một hoặc nhiều nút với các pod đang chạy. Trong cụm, mặt phẳng điều khiển Kubernetes quản lý các nút và pod.

Mặt phẳng điều khiển có các thành phần sau đây:

  • Máy chủ API Kubernetes (kube-apiserver) quản lý thông tin liên lạc trong và đến cụm
  • Bộ nhớ (etcd) để ghi lại trạng thái cố định của cụm
    Bộ lập lịch (kube-scheduler) để quản lý nút và các tài nguyên Kubernetes tiếp theo của pod 

Các thành phần khác bao gồm trình quản lý bộ điều khiển để kiểm soát công việc và nút (kube-controller-manager) và trình quản lý bộ điều khiển đám mây để tích hợp với cơ sở hạ tầng đám mây công cộng dành riêng cho nhà cung cấp (cloud-controller-manager).

Vì bộ chứa không có bộ nhớ cố định, các ứng dụng cần lưu trữ dữ liệu tồn tại. Pod cũng có thể yêu cầu quyền truy cập vào dữ liệu được chia sẻ. Các ổ đĩa cố định có thể được thêm vào một cụm dưới dạng bộ nhớ, được tham chiếu trong cụm tương tự như một nút.

Nhà phát triển có thể thao tác với cụm Kubernetes bằng cách nào?

Trước tiên, nhà phát triển phải tải xuống và cài đặt Kubernetes trên một nút chủ và các nút thợ. Sau đó, họ có thể triển khai cụm trên máy vật lý hoặc máy ảo, cục bộ, trong trung tâm dữ liệu hoặc trên đám mây.

Lắp đặt

Để dễ dàng triển khai với máy ảo Linux, trên nút chủ đã chọn (máy ảo), trước tiên, hãy cài đặt:

  • Docker hoặc bất kỳ phần mềm container hóa nào khác.
  • Khóa kho lưu trữ và kho lưu trữ mã của Kubernetes.
  • Kubeadm gói để tạo và triển khai cụm.
  • Kubelet gói để phối hợp nút.
  • Kubectl gói cho dòng lệnh cụm.

Thực hiện quy trình trên mỗi nút thợ được chỉ định khác.

Khởi tạo cụm

Để khởi tạo một cụm, hãy chạy lệnh kubeadm init trên nút chủ. Bạn phải thêm tệp cấu hình kube và triển khai mạng pod, thường là với tệp YAML, để cụm sẵn sàng hoạt động. Lệnh kubeadm init trả về lệnh join, có thể được sao chép và dán vào các dòng lệnh của nút thợ khác trên máy ảo. Khi đó, mỗi nút thợ có thể tham gia vào cụm. 

Thao tác với Kubernetes

Với bảng điều khiển giao diện người dùng Kubernetes, người triển khai có thể tạo và triển khai các ứng dụng trên cụm. Đối với bảng điều khiển giao diện người dùng Kubernetes, hãy chạy lệnh kubectl proxy trên máy chủ. Sau đó, giao diện người dùng sẽ có sẵn tại http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/.

Quản lý cụm Kubernetes là gì?

Quản lý cụm Kubernetes là thuật ngữ về hoạt động quản lý nhiều cụm Kubernetes trên quy mô lớn. Ví dụ: hãy xem xét môi trường phát triển - nhóm có thể yêu cầu các cụm kiểm thử, phát triển và sản xuất, trong đó mỗi cụm chạy trên nhiều máy ảo và vật lý phân tán tại chỗ và dựa trên đám mây.

Để quản lý nhiều loại cụm cùng nhau, bạn cần có khả năng thực hiện các hoạt động về cụm, chẳng hạn như tạo và hủy, cập nhật tại chỗ, bảo trì, cấu hình lại, bảo mật, báo cáo dữ liệu cụm, v.v. Bạn có thể quản lý nhiều cụm bằng cách kết hợp giữa các dịch vụ Kubernetes, công cụ chuyên dụng, phương thức cấu hình và các phương pháp hay nhất.

AWS có thể hỗ trợ các yêu cầu về cụm Kubernetes như thế nào?

AWS cung cấp các dịch vụ đám mây để định cấu hình, chạy và quản lý các cụm Kubernetes: 

  • Amazon Elastic Compute Cloud (EC2) giúp bạn cung cấp và chạy Kubernetes trên các loại phiên bản bạn chọn.
  • Amazon Elastic Kubernetes Service (EKS) giúp bạn khởi động, chạy và điều chỉnh quy mô Kubernetes - mà không cần cung cấp hoặc quản lý các phiên bản chính bằng mặt phẳng điều khiển và etcd. EKS đi kèm với các công cụ quản lý cụm và giải pháp tích hợp hữu ích với các dịch vụ bảo mật và mạng AWS.

Bắt đầu sử dụng cụm Kubernetes trên AWS bằng cách tạo tài khoản miễn phí ngay hôm nay.

Các bước tiếp theo trên AWS

Tham khảo các tài nguyên bổ sung liên quan đến sản phẩm
Đổi mới sáng tạo nhanh hơn với bộ dịch vụ Bộ chứa toàn diện nhất 
Đăng ký tài khoản miễn phí

Nhận ngay quyền sử dụng Bậc miễn phí của AWS.

Đăng ký 
Bắt đầu xây dựng trong bảng điều khiển

Bắt đầu xây dựng trong AWS Management Console.

Đăng nhập