Hướng dẫn Kubernetes cho người mới bắt đầu: Khái niệm cơ bản, Tính năng, Archikiến trúc
Trước khi bắt đầu hướng dẫn Kubernetes này, hãy tìm hiểu:
Kubernetes là gì?
Kubernetes là hệ thống quản lý container được phát triển trên nền tảng Google. Kubernetes giúp quản lý các ứng dụng container trong nhiều loại môi trường vật lý, ảo và đám mây. Google Kubernetes là công cụ container cực kỳ linh hoạt để cung cấp các ứng dụng phức tạp chạy trên các cụm từ hàng trăm đến hàng nghìn máy chủ riêng lẻ một cách nhất quán.
Tại sao bạn cần container?
Người dùng internet ngày nay không bao giờ chấp nhận thời gian ngừng hoạt động. Do đó, các nhà phát triển phải tìm ra phương pháp thực hiện bảo trì và cập nhật mà không làm gián đoạn dịch vụ của họ.
Vì vậy container, đó là môi trường bị cô lập. Nó bao gồm mọi thứ cần thiết để ứng dụng chạy. Nó giúp nhà phát triển dễ dàng chỉnh sửa và triển khai ứng dụng. Hơn nữa, việc container hóa đã trở thành một phương pháp được ưa chuộng để đóng gói, triển khai và cập nhật ứng dụng web.
Kubernetes thực hiện nhiệm vụ gì?
Kubernetes là nhân Linux được sử dụng cho các hệ thống phân tán. Nó giúp bạn trừu tượng hóa phần cứng cơ bản của các nút (máy chủ) và cung cấp giao diện nhất quán cho các ứng dụng sử dụng nhóm tài nguyên được chia sẻ.
Tại sao nên sử dụng Kubernetes?
Kubernetes giúp bạn kiểm soát việc phân bổ tài nguyên và quản lý lưu lượng cho các ứng dụng đám mây và dịch vụ vi mô. Nó cũng giúp đơn giản hóa các khía cạnh khác nhau của cơ sở hạ tầng hướng dịch vụ. Kubernetes cho phép bạn đảm bảo các ứng dụng trong vùng chứa chạy ở đâu và khi nào, đồng thời giúp bạn tìm các tài nguyên và công cụ bạn muốn làm việc.
Tính năng của Kubernetes
Dưới đây là các tính năng Kubernetes thiết yếu:
- Lập lịch tự động
- Khả năng tự chữa lành
- Triển khai và khôi phục tự động
- Cân bằng tải và chia tỷ lệ theo chiều ngang
- Cung cấp sự nhất quán về môi trường để phát triển, thử nghiệm và sản xuất
- Cơ sở hạ tầng được kết nối lỏng lẻo để mỗi thành phần có thể hoạt động như một đơn vị riêng biệt
- Cung cấp mật độ sử dụng tài nguyên cao hơn
- Cung cấp các tính năng sẵn sàng cho doanh nghiệp
- Quản lý tập trung vào ứng dụng
- Cơ sở hạ tầng có khả năng mở rộng tự động
- Bạn có thể tạo cơ sở hạ tầng có thể dự đoán được
Khái niệm cơ bản về Kubernetes
Bây giờ trong hướng dẫn Kubernetes này, chúng ta sẽ tìm hiểu một số Thông tin cơ bản quan trọng về Kubernetes:
-
Cluster
Nó là tập hợp các máy chủ (máy chủ) giúp bạn tổng hợp các tài nguyên sẵn có của chúng. Điều đó bao gồm ram, CPU, ram, đĩa và các thiết bị của chúng vào một nhóm có thể sử dụng được.
-
Bậc thầy
Master là tập hợp các thành phần tạo nên control panel của Kubernetes. Các thành phần này được sử dụng cho tất cả các quyết định của cụm. Nó bao gồm cả việc lập kế hoạch và phản hồi các sự kiện của cụm.
-
Node
Nó là một máy chủ duy nhất có khả năng chạy trên môi trường vật lý hoặc máy ảo. Một nút phải chạy cả kube-proxy, minikube và kubelet được coi là một phần của cụm.
-
Không gian tên
Đó là một cụm hoặc môi trường logic. Đây là một phương pháp được sử dụng rộng rãi để xác định phạm vi truy cập hoặc phân chia một cụm.
Kubernetes Archikiến trúc
Dưới đây là sơ đồ kiến trúc Kubernetes chi tiết:
Nút chủ
Nút chính là thành phần đầu tiên và quan trọng nhất chịu trách nhiệm quản lý cụm Kubernetes. Đây là điểm khởi đầu cho tất cả các loại nhiệm vụ hành chính. Có thể có nhiều nút chính trong cụm để kiểm tra khả năng chịu lỗi.
Nút chính có nhiều thành phần khác nhau như Máy chủ API, Trình quản lý bộ điều khiển, Bộ lập lịch và ETCD. Hãy xem tất cả chúng.
Máy chủ API: Máy chủ API hoạt động như một điểm vào cho tất cả các lệnh REST được sử dụng để kiểm soát cụm.
Scheduler
Bộ lập lịch lên lịch các tác vụ cho nút nô lệ. Nó lưu trữ thông tin sử dụng tài nguyên cho mọi nút nô lệ. Nó chịu trách nhiệm phân phối khối lượng công việc.
Nó cũng giúp bạn theo dõi cách sử dụng tải làm việc trên các nút cụm. Nó giúp bạn đặt khối lượng công việc vào các tài nguyên sẵn có và chấp nhận khối lượng công việc.
Vv
Các thành phần etcd lưu trữ chi tiết cấu hình và giá trị wright. Nó giao tiếp với hầu hết các thành phần để nhận lệnh và làm việc. Nó cũng quản lý các quy tắc mạng và hoạt động chuyển tiếp cổng.
Nút công nhân/nô lệ
Nút công nhân là một thành phần thiết yếu khác chứa tất cả các dịch vụ cần thiết để quản lý kết nối mạng giữa các vùng chứa, giao tiếp với nút chính, cho phép bạn chỉ định tài nguyên cho các vùng chứa đã lên lịch.
- Kubelet: lấy cấu hình của Pod từ máy chủ API và đảm bảo rằng các vùng chứa được mô tả đang hoạt động.
- Vùng chứa Docker: phu bến tàu container chạy trên mỗi nút công nhân, chạy các nhóm được định cấu hình
- Kube-proxy: Kube-proxy hoạt động như một bộ cân bằng tải và proxy mạng để thực hiện dịch vụ trên một nút công nhân duy nhất
- Nhóm: Nhóm là sự kết hợp của một hoặc nhiều vùng chứa chạy hợp lý cùng nhau trên các nút
Các thuật ngữ chính khác
Bộ điều khiển sao chép
Bộ điều khiển sao chép là một đối tượng xác định mẫu nhóm. Nó cũng kiểm soát các tham số để chia tỷ lệ các bản sao giống hệt nhau của Pod theo chiều ngang bằng cách tăng hoặc giảm số lượng bản sao đang chạy.
Bộ sao chép
Các bộ sao chép là sự tương tác trên thiết kế bộ điều khiển sao chép với tính linh hoạt trong cách bộ điều khiển nhận ra các nhóm mà nó dự định quản lý. Nó thay thế các bộ điều khiển sao chép vì khả năng lựa chọn sao chép cao hơn.
Triển khai
Triển khai là một khối lượng công việc phổ biến có thể được tạo và quản lý trực tiếp. Việc triển khai sử dụng bộ sao chép như một khối xây dựng bổ sung tính năng quản lý vòng đời.
Bộ trạng thái
Nó là một điều khiển nhóm chuyên dụng cung cấp thứ tự và tính duy nhất. Nó chủ yếu được sử dụng để có quyền kiểm soát chi tiết mà bạn có nhu cầu cụ thể về thứ tự triển khai, mạng ổn định và dữ liệu liên tục.
Bộ daemon
Bộ Daemon là một dạng bộ điều khiển nhóm chuyên biệt khác chạy một bản sao của nhóm trên mọi nút trong cụm. Loại bộ điều khiển nhóm này là một phương pháp hiệu quả để triển khai các nhóm cho phép bạn thực hiện bảo trì và cung cấp dịch vụ cho chính các nút đó.
Kubernetes so với Docker Swarm
Dưới đây là những khác biệt quan trọng giữa Kubernetes so với Docker.
Tham số | Docker bầy | Kubernetes |
---|---|---|
Mở rộng quy mô | Không tự động điều chỉnh tỷ lệ | Tự động điều chỉnh tỷ lệ |
cân bằng tải | Có tự động cân bằng tải | Định cấu hình cài đặt cân bằng tải của bạn theo cách thủ công |
Chia sẻ dung lượng lưu trữ | Chia sẻ khối lượng lưu trữ với bất kỳ vùng chứa nào khác | Chia sẻ khối lượng lưu trữ giữa nhiều container bên trong cùng một Pod |
Sử dụng công cụ đăng nhập và giám sát | Sử dụng 3rd công cụ tiệc tùng như ELK | Cung cấp một công cụ tích hợp để ghi nhật ký và giám sát. |
của DINTEK | Dễ dàng và nhanh chóng | Phức tạp và tốn thời gian |
GUI | GUI không có sẵn | GUI có sẵn |
khả năng mở rộng | Mở rộng quy mô nhanh hơn K8S, nhưng cường độ cụm không mạnh bằng | Việc mở rộng quy mô chậm so với Swarm nhưng đảm bảo trạng thái cụm mạnh hơn Cân bằng tải yêu cầu cấu hình dịch vụ thủ công |
Cân bằng tải | Cung cấp kỹ thuật cân bằng tải tích hợp | Lập kế hoạch xử lý để duy trì dịch vụ trong khi cập nhật |
Cập nhật & Khôi phục Khối lượng dữ liệu Ghi nhật ký & Giám sát | Cập nhật tiến bộ và theo dõi tình trạng dịch vụ. | Chỉ được chia sẻ với các vùng chứa trong cùng một công cụ giám sát và ghi nhật ký sẵn có của Pod. |
Ưu điểm của Kubernetes
- Dễ dàng tổ chức dịch vụ với nhóm
- Nó được phát triển bởi Google, người đã mang lại nhiều năm kinh nghiệm quý giá trong ngành
- Cộng đồng lớn nhất trong số các công cụ điều phối vùng chứa
- Cung cấp nhiều tùy chọn lưu trữ, bao gồm tại chỗ, SAN và đám mây công cộng
- Tuân thủ các nguyên tắc của cơ sở hạ tầng bất biến
- Kubernetes có thể chạy kim loại trần tại chỗ, OpenStack, đám mây công cộng Google, Azure, AWS, Vv
- Giúp bạn tránh các sự cố khóa nhà cung cấp vì nó có thể sử dụng bất kỳ API hoặc dịch vụ cụ thể nào của nhà cung cấp ngoại trừ khi Kubernetes cung cấp tính năng trừu tượng hóa, ví dụ: bộ cân bằng tải và bộ lưu trữ.
- Việc container hóa bằng kubernetes cho phép phần mềm đóng gói phục vụ các mục tiêu này. Nó sẽ cho phép các ứng dụng cần được phát hành và cập nhật mà không có thời gian ngừng hoạt động.
- Kubernetes cho phép bạn đảm bảo các ứng dụng được đóng gói đó chạy ở đâu và khi nào bạn muốn, đồng thời giúp bạn tìm các tài nguyên và công cụ mà bạn muốn làm việc.
Nhược điểm của Kubernetes
- Bảng điều khiển Kubenetes không hữu ích như mong đợi
- Kubernetes hơi phức tạp và không cần thiết trong các môi trường mà mọi hoạt động phát triển đều được thực hiện cục bộ.
- Bảo mật không hiệu quả lắm.
Tổng kết
- Container giúp tổ chức thực hiện bảo trì và cập nhật mà không làm gián đoạn dịch vụ
- Kubernetes là một ví dụ về hệ thống quản lý vùng chứa được phát triển trên nền tảng Google.
- Ưu điểm lớn nhất của việc sử dụng Kubernetes là nó có thể chạy OpenStack tại chỗ, đám mây công cộng của Google, Azure, AWS, v.v.
- Kubernetes cung cấp khả năng Lập kế hoạch và Tự phục hồi tự động.
- Cluster, master, node và namespace là những kiến thức cơ bản quan trọng của kubernetes
- Nút chính và nút làm việc là những thành phần quan trọng của kiến trúc Kubernetes.
- Bộ điều khiển sao chép, Bộ sao chép, Triển khai, Bộ trạng thái, Bộ daemon là những thuật ngữ quan trọng khác được sử dụng trong Kubernetes.
- Docker bầy đàn không cho phép tự động mở rộng quy mô trong khi Kubernetes cho phép tự động mở rộng quy mô.
- Hạn chế lớn nhất của Kubenetes là bảng điều khiển không hữu ích và hiệu quả