Kubernetes là phần mềm nguồn mở phổ biến nhất giúp tự động hóa các quy trình xây dựng container.
Theo khảo sát hàng năm của Tổ chức điện toán đám mây (CNCF), 96% tổ chức sử dụng K8 hoặc đang cân nhắc sử dụng nó. Nếu bạn theo dõi chặt chẽ, 5,8 triệu nhà phát triển trên toàn thế giới sử dụng Kubernetes, chiếm 31% số nhà phát triển back-end trên toàn thế giới.
Nó được ưa thích do khả năng sử dụng công nghệ nhờ khả năng mở rộng tốt hơn, tính sẵn có và thời gian triển khai ngắn. Trong khi nhiều nhà phát triển bắt đầu quỹ đạo container của họ với Docker (một công cụ end-to-end dựa trên CLI để tương tác với từng container), K8s cung cấp các bản tóm tắt cấp cao để xác định ứng dụng và cơ sở hạ tầng của chúng bằng các lược đồ mà bạn có thể cộng tác trên đó .
Nếu bạn mới làm quen với Kubernetes, bài viết này được thiết kế đặc biệt để giúp bạn bắt đầu và chia sẻ một số thông tin chi tiết để bạn bắt đầu. Bạn sẽ tìm hiểu cách K8 có thể giúp nhà phát triển tăng cường các sản phẩm kỹ thuật số.
Kubernetes là gì và tại sao bạn cần nó?
Kubernetes là một cơ chế (khung) điều phối nguồn mở được sử dụng để tự động hóa việc triển khai, mở rộng quy mô và quản lý các ứng dụng được chứa trong bộ chứa; điều này bao gồm hỗ trợ cho khả năng dự đoán và tính sẵn có.
Nói một cách đơn giản, hãy nghĩ về một ứng dụng mà bạn đặt trong một thùng chứa. Bạn cần chạy một số vùng chứa để phục vụ người dùng ứng dụng của mình. Sự lo lắng xuất hiện khi bạn phải quản lý những thùng chứa này. Các thùng chứa không nhất thiết phải ở trên cùng một máy, điều này sẽ làm phức tạp vấn đề. Vậy giải pháp cho vấn đề này là gì?
Kubernetes hỗ trợ bạn bằng cách cung cấp một cách hiệu quả để xử lý liền mạch tất cả các quy trình này. Mặc dù K8 có thể được so sánh với một công cụ chứa container như Docker, nhưng nó là một công cụ điều phối container. Là một lập trình viên mới vào nghề, bạn không phải lo lắng về cách K8 điều phối. Bạn có thể sẽ không thiết lập cụm K8 cho ứng dụng của mình; thêm về điều đó sớm.
Tuy nhiên, bạn sẽ tương tác với các cụm do nhóm cơ sở hạ tầng của bạn tạo ra. Làm quen với các đối tượng bạn sẽ tương tác là rất quan trọng. Nhưng trước khi làm điều đó, bạn cần có hiểu biết ở mức độ cao về kiến trúc của nó để hiểu những gì đang diễn ra bên dưới.
Tính năng Kubernetes
Kubernetes có một số tính năng với nhiều khả năng chạy container và cơ sở hạ tầng liên quan khác. Đây là danh sách:
Kiến trúc Kubernetes
Về cốt lõi, kiến trúc Kubernetes bao gồm một nút chính và hai nút công nhân. Nút cha thực thi các lệnh trong cụm, trong khi nút công nhân (nô lệ) chạy các ứng dụng theo quyết định của nút cha.
nguồn: kubernetes.io
Đây là một sự cố thêm.
Nút chính
Nút chính quyết định trạng thái của cụm và xác định hành động của từng nút. Cần có một số quy trình để định cấu hình nút chính.
Tất cả các giao tiếp cụm diễn ra ở đây. Nó là cổng cho phép tất cả các thành phần của cụm trao đổi thông tin. Cung cấp API Kubernetes. Có hai vai trò chính ở đây. Đầu tiên là điểm vào cho phép người dùng tương tác với cụm. Ví dụ: gửi yêu cầu khi sử dụng Kubectl. Thứ hai, gác cổng để xác thực và xác thực các yêu cầu. Trong trường hợp này, chỉ một số người dùng nhất định mới có thể đưa ra yêu cầu.
Bộ lập lịch chỉ định các ứng dụng Kubernetes hoặc đối tượng khối lượng công việc cho nút công nhân. Trong trường hợp này, bộ lập lịch sẽ đặt các nhóm trên các nút dựa trên yêu cầu về tài nguyên. Và khi nói về nhóm, đó chỉ là một đơn vị triển khai nhỏ trong Kubernetes.
Đơn vị này xử lý việc phân cụm như lỗi nút để duy trì số lượng nhóm chính xác. Nó phát hiện các thay đổi trạng thái của cụm, chẳng hạn như các nhóm sắp chết và cố gắng khôi phục trạng thái ban đầu của các nhóm. Ví dụ: nếu một nhóm vô tình chết, trình quản lý bộ điều khiển sẽ yêu cầu người lập lịch phê duyệt, nút nào sẽ khởi động một nhóm mới để thay thế và kubelet sẽ bắt đầu một nhóm mới.
Nó còn được gọi là bộ não của cụm. Thực thể là kho lưu trữ giá trị khóa cho cấu hình cụm. Điều này có nghĩa là tất cả các thay đổi cụm được thực hiện ở đây. Bạn có thể sao lưu cụm của mình bằng cách lưu kho giá trị khóa được phân phối. Tuy nhiên, xin lưu ý rằng chỉ có dữ liệu trạng thái cụm được lưu trữ ở đây chứ không phải dữ liệu ứng dụng. Thực thể này được thiết kế đặc biệt để lưu trữ thông tin trạng thái cụm và sử dụng nó cho các quy trình trước đó giúp chúng nhận biết về cụm.
Nút con
Mỗi nút con được cài đặt ba quy trình nút cho phép K8 tương tác với nó và chạy các nhóm trên mỗi nút riêng biệt. Các quy trình cần thiết là:
Đây là dịch vụ Kubernetes cơ bản kích hoạt việc thực thi cho lớp thực thi vùng chứa. Nếu bạn loại bỏ thực thể đó, Kubernetes sẽ không khác gì một API REST được bộ lưu trữ khóa-giá trị phê duyệt. Theo mặc định, K8s thực thi ứng dụng container. Các container luôn được cách ly với nhau và hệ thống máy chủ cơ bản. Nó hóa ra là tách biệt về mặt phân tích việc quản lý các ứng dụng riêng lẻ với nhau và với cơ sở hạ tầng vật lý hoặc ảo.
Mặc dù kiểm soát truy cập API có thể từ chối các nhóm hoặc thêm các ràng buộc bổ sung, nhưng kubelet là công cụ phê duyệt cuối cùng về những nhóm nào đang chạy trên một nút cụ thể, chứ không phải bộ lập lịch hoặc bộ daemon. Tóm lại, kubelets tương tác với một nút và một vùng chứa. Nó cũng tải xuống các tệp cấu hình và chạy các nhóm bằng thời gian chạy vùng chứa.
Phần này hỗ trợ container. Ví dụ: bạn có thể sử dụng Docker, rkt hoặc conatinered để tìm hiểu thêm về cách hoạt động của vùng chứa.
Thực thể này cung cấp lớp trừu tượng cho các nhóm nút theo các chính sách chung như cân bằng tải. Tất cả các nút đều sử dụng kube-proxy để cung cấp địa chỉ IP ảo cho khách hàng truy cập vào nhóm động. Cấu trúc này là một giải pháp để cân bằng tải trong khi vẫn duy trì hiệu suất hoạt động ở mức thấp.
Cách thức hoạt động của container hóa
Containerization là ảo hóa tất cả các yếu tố cần thiết của ứng dụng thành một tổng thể. Bên dưới các thùng chứa có một tập hợp các thư viện, tệp nhị phân và tất cả các cấu hình ứng dụng cần thiết. Tuy nhiên, chúng không bao gồm tài nguyên kernel hoặc phần cứng ảo hóa.
Cuối cùng, thực hiện thời gian chạy vùng chứa “trên cùng” để chỉ định tài nguyên. Vì các thùng chứa chỉ chứa các thành phần cơ bản và phần phụ thuộc của ứng dụng nên chúng nhẹ và do đó nhanh hơn, không giống như các máy ảo khác.
Cũng đọc: Vùng chứa so với Máy ảo: Giải thích sự khác biệt
Cách cài đặt và cấu hình Kubernetes
Tôi đã dành rất nhiều thời gian để nghiên cứu lý thuyết; phần xếp tầng sẽ mang tính chất chiến thuật và sẽ yêu cầu kinh nghiệm thực hành với các thùng chứa. Hướng dẫn này đặc biệt bao gồm việc cài đặt trên hệ điều hành Windows.
Có nhiều cách để thực hiện cài đặt trên hệ thống của bạn Windows; bạn có thể chọn dòng lệnh hoặc giao diện người dùng đồ họa. Tuy nhiên, hãy đảm bảo rằng chúng đáp ứng các thông số kỹ thuật cần thiết sau đây.
Phần cứng của bạn yêu cầu một headnode có ít nhất 2 GB bộ nhớ và 700 MB cho nút công nhân. Yêu cầu phần mềm, Hype-v, Docker cho máy tính để bàn, địa chỉ Mac duy nhất và UUID sản phẩm duy nhất cho mỗi nút. Đây là một cách tiếp cận từng bước.
Cài đặt và cấu hình Hyper-V
Hyper-V là phần mềm ảo hóa hệ thống mặc định Windows. Về cơ bản nó là VirtalBox trên steroid. Nó cho phép bạn quản lý các máy ảo bằng GUI của Microsoft hoặc dòng lệnh. Để bật Hyper-V, hãy làm theo các bước sau.
Máy tính có thể thỉnh thoảng khởi động lại để đảm bảo mọi thứ được thiết lập chính xác. Bạn có thể xác minh sự thành công của quá trình cài đặt bằng cách nhập lệnh sau vào Power Shell.
Get-WindowsOptionalFeature -Online – Tên tính năng Microsoft-Hyper-V
Xác nhận rằng màn hình chứa đầy chữ “bật”.
Cài đặt Docker
Như bạn đã biết, K8s là một công cụ điều phối vùng chứa được xây dựng trên các vùng chứa; trong trường hợp này, Docker là một lựa chọn tốt. K8s giao tiếp với Docker và quản lý mọi thứ ở cấp doanh nghiệp. Hãy di chuyển bằng cách tải xuống Docker cho Windows. Nếu bạn đang thắc mắc tại sao cần sử dụng Docker Desktop, thì Docker Desktop được ưu tiên vì đơn giản hóa việc phát triển, phân phối và chạy các ứng dụng docker (được đóng gói).
Đây cũng là cách nhanh nhất để xây dựng ứng dụng Docker trên hệ thống của bạn Windows sử dụng Hyper-V và kết nối mạng. Sau khi cài đặt thành công, Docker luôn có sẵn trên mọi thiết bị đầu cuối miễn là nó đang chạy. Hướng dẫn cài đặt chi tiết có thể được tìm thấy trong tài liệu Docker chính thức. Nếu bạn gặp bất kỳ vấn đề nào sau khi cài đặt, chẳng hạn như biểu tượng ẩn, vấn đề có thể được giải quyết bằng cách khởi động lại máy tính.
Cài đặt Kubernetes
GUI Docker cho phép bạn định cấu hình cài đặt, cài đặt và kích hoạt Kubernetes. Để cài đặt K8, hãy làm theo các bước sau.
Docker sau đó sẽ cài đặt các gói và phụ thuộc bổ sung. Quá trình này mất năm đến mười phút, tùy thuộc vào tốc độ internet của bạn. Bạn có thể sử dụng Docker để đảm bảo mọi thứ đều hoạt động bình thường.
Vì các ứng dụng Kubernetes có thể được triển khai bằng CLI nên bạn có thể cần cài đặt bảng thông tin K8s vì nó không được cài đặt theo mặc định. Cài đặt bảng điều khiển bằng cách làm theo các bước sau.
Để truy cập bảng điều khiển, hãy chạy lệnh sau trong power shell (không phải CMD)
- Sao chép mã thông báo đã tạo và khởi động proxy kubectl.
Nếu bạn đã đến được đây, hoan hô, màn hình của bạn sẽ chứa đầy bảng điều khiển của K8. Giờ đây, bạn có thể quản lý các ứng dụng của mình mà không cần thực hiện công việc khó khăn bằng CLI.
Cũng đọc: Cách cài đặt Kubernetes trên Ubuntu 18
Cách tạo và quản lý cụm Kubernetes
Nếu bạn theo dõi ở đây thì bạn đã cài đặt thành công Kubernetes trên máy chủ của mình. Sau đó làm theo các bước sau để tạo và thực hiện quản lý cụm đơn giản:
Mặc dù đây chỉ là phần tổng quan về quy trình tạo cụm nhưng nó bao gồm nhiều bước liên quan đến một số lệnh. Đây là hướng dẫn chính thức để tạo cụm trước khi triển khai. Nó sẽ là bàn tay hướng dẫn của bạn.
Cách triển khai ứng dụng đầu tiên của bạn bằng Kubernetes
Lệnh phổ biến nhất khi sử dụng K8 là tài nguyên hành động kubectl cho phép bạn thực hiện một số hành động nhất định như tạo hoặc xóa một tài nguyên cụ thể.
Nếu gặp khó khăn, bạn có thể sử dụng tùy chọn –help sau một lệnh cụ thể để nhận thêm thông tin.
Ví dụ: Kubernetes nhận được các nút trợ giúp. Triển khai ứng dụng K8 đầu tiên của bạn với kubectl createployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1.
những từ cuối
Hướng dẫn này là điểm khởi đầu cho công nghệ Kubernetes. Bạn đã tìm hiểu những ưu điểm, tính năng và kiến trúc của Kubernetes. May mắn thay, bạn có thể phải tham khảo một số mẹo (tài nguyên bên ngoài) để bắt đầu; giải thích cách mọi thứ hoạt động dưới mui xe.
Mặc dù việc hiểu toàn bộ nền tảng công nghệ khi mới bắt đầu có vẻ quá sức, nhưng bài đăng này là một mẹo liền mạch để giúp bạn bắt đầu với K8. Bạn sẽ cần thực hành một chút để tự tin sử dụng công nghệ này, vì vậy tôi giới thiệu cho bạn tài liệu chính thức của Kubernetes như một tài liệu tham khảo bổ sung. Càng thực hành nhiều, bạn sẽ càng nhanh chóng trở thành chuyên gia K8.
Sau đó, hãy xem hướng dẫn Kubernetes dành cho người mới bắt đầu nắm vững.