Kubernetes là công nghệ quản lý vùng chứa được phát triển trong phòng thí nghiệm của Google để quản lý các ứng dụng được chứa trong vùng chứa trong các loại môi trường khác nhau như cơ sở hạ tầng vật lý, ảo và đám mây. Nó là một hệ thống mã nguồn mở giúp tạo và quản lý việc chứa ứng dụng. Hướng dẫn này cung cấp một cái nhìn tổng quan về các loại tính năng và chức năng khác nhau của Kubernetes và dạy cách quản lý cơ sở hạ tầng container và triển khai ứng dụng.
Hướng dẫn này đã được chuẩn bị cho những ai muốn hiểu cơ sở hạ tầng container và triển khai ứng dụng trên container. Hướng dẫn này sẽ giúp hiểu các khái niệm về quản lý vùng chứa bằng Kubernetes.
Chúng tôi cho rằng bất kỳ ai muốn hiểu Kubernetes đều phải hiểu rõ về cách hoạt động của Docker, cách các hình ảnh Docker được tạo ra và cách chúng hoạt động như một đơn vị độc lập. Để đạt được cấu hình nâng cao trong Kubernetes, người ta nên hiểu mạng cơ bản và cách thức hoạt động của giao thức truyền thông
Kubernetes trong một công cụ quản lý vùng chứa mã nguồn mở được tổ chức bởi Cloud Native Computing Foundation (CNCF). Đây còn được gọi là phiên bản nâng cao của Borg được phát triển tại Google để quản lý cả các quy trình đang chạy dài và các công việc hàng loạt, trước đó được xử lý bởi các hệ thống riêng biệt.
Kubernetes đi kèm với khả năng tự động hóa việc triển khai, mở rộng ứng dụng và hoạt động của các vùng chứa ứng dụng trên các cụm. Nó có khả năng tạo ra cơ sở hạ tầng tập trung vào container.
Đặc điểm của Kubernetes
Sau đây là một số tính năng quan trọng của Kubernetes.
- Tiếp tục phát triển, tích hợp và triển khai
- Cơ sở hạ tầng container
- Quản lý tập trung vào ứng dụng
- Cơ sở hạ tầng có thể mở rộng tự động
- Môi trường nhất quán trong quá trình thử nghiệm phát triển và sản xuất
- Cơ sở hạ tầng được kết hợp lỏng lẻo, nơi mỗi thành phần có thể hoạt động như một đơn vị riêng biệt
- Mật độ sử dụng tài nguyên cao hơn
- Cơ sở hạ tầng có thể đoán trước sẽ được tạo ra
Một trong những thành phần quan trọng của Kubernetes là nó có thể chạy ứng dụng trên các cụm cơ sở hạ tầng máy vật lý và máy ảo. Nó cũng có khả năng chạy các ứng dụng trên đám mây. Nó giúp chuyển từ cơ sở hạ tầng tập trung vào máy chủ sang cơ sở hạ tầng tập trung vào container.
Kubernetes – Kiến trúc
Trong chương này, chúng ta sẽ thảo luận về kiến trúc cơ bản của Kubernetes.
Kubernetes – Kiến trúc cụm
Như được thấy trong sơ đồ sau, Kubernetes tuân theo kiến trúc máy khách-máy chủ. Trong đó, chúng tôi đã cài đặt chính trên một máy và nút trên các máy Linux riêng biệt.
Các thành phần chính của nút chính và nút được định nghĩa trong phần sau.
Kubernetes – Thành phần máy chính
Sau đây là các thành phần của Kubernetes Master Machine.
vvd
Nó lưu trữ thông tin cấu hình có thể được sử dụng bởi từng nút trong cụm. Nó là một kho lưu trữ giá trị khóa có tính khả dụng cao có thể được phân phối giữa nhiều nút. Nó chỉ có thể truy cập được bằng máy chủ Kubernetes API vì nó có thể có một số thông tin nhạy cảm. Nó là một Kho lưu trữ giá trị khóa được phân phối mà tất cả mọi người đều có thể truy cập được.
Máy chủ API
Kubernetes là một máy chủ API cung cấp tất cả hoạt động trên cụm bằng cách sử dụng API. Máy chủ API triển khai một giao diện, có nghĩa là các công cụ và thư viện khác nhau có thể dễ dàng giao tiếp với nó. Kubeconfig là một gói cùng với các công cụ phía máy chủ có thể được sử dụng để giao tiếp. Nó tiết lộ API Kubernetes.
Người quản lý điều khiển
Thành phần này chịu trách nhiệm cho hầu hết các bộ sưu tập điều chỉnh trạng thái của cụm và thực hiện một nhiệm vụ. Nói chung, nó có thể được coi là một daemon chạy trong vòng lặp liên tục và chịu trách nhiệm thu thập và gửi thông tin đến máy chủ API. Nó hoạt động theo hướng nhận trạng thái chia sẻ của cụm và sau đó thực hiện các thay đổi để đưa trạng thái hiện tại của máy chủ về trạng thái mong muốn. Các bộ điều khiển chính là bộ điều khiển sao chép, bộ điều khiển điểm cuối, bộ điều khiển không gian tên và bộ điều khiển tài khoản dịch vụ. Trình quản lý bộ điều khiển chạy các loại bộ điều khiển khác nhau để xử lý các nút, điểm cuối, v.v.
Người lập kế hoạch
Đây là một trong những thành phần quan trọng của Kubernetes master. Nó là một dịch vụ tổng thể chịu trách nhiệm phân phối khối lượng công việc. Nó chịu trách nhiệm theo dõi việc sử dụng tải làm việc trên các nút cụm và sau đó đặt khối lượng công việc vào tài nguyên nào có sẵn và chấp nhận khối lượng công việc. Nói cách khác, đây là cơ chế chịu trách nhiệm phân bổ nhóm cho các nút có sẵn. Bộ lập lịch chịu trách nhiệm sử dụng khối lượng công việc và phân bổ nhóm cho nút mới.
Kubernetes – Thành phần nút
Sau đây là các thành phần chính của máy chủ Node cần thiết để giao tiếp với Kubernetes master.
Docker
Yêu cầu đầu tiên của mỗi nút là Docker giúp chạy các vùng chứa ứng dụng được đóng gói trong một môi trường hoạt động tương đối cô lập nhưng nhẹ.
Dịch vụ Kubelet
Đây là một dịch vụ nhỏ trong mỗi nút chịu trách nhiệm chuyển tiếp thông tin đến và đi từ dịch vụ máy bay điều khiển. Nó tương tác với cửa hàng etcd để đọc chi tiết cấu hình và giá trị ghi. Điều này giao tiếp với thành phần chính để nhận lệnh và hoạt động. Sau đó, quy trình kubelet đảm nhận trách nhiệm duy trì trạng thái công việc và máy chủ nút. Nó quản lý các quy tắc mạng, chuyển tiếp cổng, v.v.
Dịch vụ proxy Kubernetes
Đây là một dịch vụ proxy chạy trên mỗi nút và giúp cung cấp các dịch vụ cho máy chủ bên ngoài. Nó giúp chuyển tiếp yêu cầu sửa vùng chứa và có khả năng thực hiện cân bằng tải nguyên thủy. Nó đảm bảo rằng môi trường mạng có thể dự đoán được và có thể truy cập được, đồng thời nó cũng bị cô lập. Nó quản lý các nhóm trên nút, khối lượng, bí mật, tạo kiểm tra sức khỏe của vùng chứa mới, v.v.
Kubernetes – Cấu trúc Master và Node
Các hình minh họa sau đây cho thấy cấu trúc của Kubernetes Master và Node.