Tin tức và phân tích của tất cả các thiết bị di động

Bắt đầu với Kubernetes: Bắt đầu cho người mới bắt đầu

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:

  • Triển khai, mở rộng quy mô và quay lại tự động – K8 sẽ tự động tạo một số lượng bản sao đã đặt, phân phối chúng đến phần cứng thích hợp (thích hợp nhất) và lên lịch lại các vùng chứa nếu nút ngừng hoạt động. Bạn có thể mở rộng quy mô ngay lập tức các bản sao của mình dựa trên nhu cầu hoặc nhu cầu thay đổi, chẳng hạn như mức sử dụng CPU.
  • Khám phá dịch vụ, ổn định tải và truy cập mạng – Kubernetes cung cấp giải pháp mạng độc đáo, bao gồm khám phá dịch vụ nội bộ và cung cấp các bộ chứa công cộng.
  • Các ứng dụng có trạng thái và không có trạng thái – Ban đầu, K8 chủ yếu tập trung vào các vùng chứa không có trạng thái. Khi công nghệ phát triển trên nhiều mặt, giờ đây nó hỗ trợ các đối tượng tích hợp đại diện cho các ứng dụng có trạng thái. Đã được phê chuẩn, mọi ứng dụng đều có thể chạy trên Kubernetes.
  • Điều khoản lưu trữ – Cho dù bạn sử dụng hệ thống tệp cục bộ, chia sẻ mạng hay đám mây, Kubernetes đều cung cấp bộ lưu trữ liên tục (trừu tượng) cho các ứng dụng chạy trong vùng chứa. Tính trừu tượng cho phép bạn xác định các yêu cầu lưu trữ độc lập với cơ sở hạ tầng cơ bản. Mặc dù điều này nằm ngoài phạm vi của bài viết này nhưng nó hoạt động dựa trên các nguyên tắc như Khối lượng liên tục (PV), Yêu cầu khối lượng liên tục (PVC), lớp lưu trữ và plugin khối lượng.
  • Trạng thái khai báo – K8s sử dụng tệp Yet Ain’t Markup Language (YAML), được gọi là tệp kê khai đối tượng, để chỉ định trạng thái cụm mong muốn. Các bảng kê khai xác định diện mạo của cụm, bao gồm nhưng không giới hạn ở các phiên bản ứng dụng được yêu cầu và quy tắc mạng cũng như các cấu hình khác. Khi bạn sử dụng tệp kê khai, K8 tự động xử lý tất cả các chuyển đổi trạng thái – bạn không cần viết tập lệnh để thực hiện việc đó.
  • Nhiều môi trường làm việc – Bạn không bị giới hạn trong việc sử dụng Kubernetes trên đám mây hoặc trên máy trạm dành cho nhà phát triển của mình. Hầu hết mọi bản phân phối đều có sẵn để phù hợp với trường hợp sử dụng cụ thể của bạn. Tìm kiếm các nhà cung cấp công nghệ đám mây lớn như Amazon Dịch vụ web, Google Cloud và Microsoft Azure. Bạn sẽ hiểu rằng tất cả họ đều cung cấp dịch vụ Kubernetes được quản lý, trong khi các bản phân phối một nút như Minikube và K3 đều có sẵn để sử dụng cục bộ.
  • Siêu mở rộng – K8s là tập hợp của nhiều chức năng. Như thể vẫn chưa đủ, bạn có thể tăng tốc khả năng của nó bằng các tiện ích mở rộng. Bạn có thể tạo các loại đối tượng, toán tử và bộ điều khiển tùy chỉnh để hợp lý hóa khối lượng công việc của mình.
  • 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.

  • máy chủ API
    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.
  • Người lập kế hoạch
    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.
  • Người quản lý điều khiển
    Đơ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.
  • vân vân
    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à:

  • khối nhỏ
    Đâ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.

  • Thời gian hoạt động của 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.
  • proxy kube
    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ở Bảng điều khiển.
  • Bấm vào các chương trình từ bảng điều khiển bên trái.
  • Trên trang chương trình và tính năng, nhấp vào “Bật hoặc tắt tính năng hệ thống Windows”.
  • Chọn Hyper-V và Hypervisor cho hệ thống của bạn Windows.
  • Sau đó chọn OK ở bước này; thiết bị phải được khởi động lại để kích hoạt cài đặt mới.
  • 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.

  • Nhấp chuột phải vào biểu tượng Docker trong khay và chọn thuộc tính.
  • Chọn “Cài đặt” từ menu thả xuống sau khi nhấp vào “Thuộc tính”.
  • Trong khung bên trái, chọn `Kubernetes` và nhấp vào `Apply`.
  • 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.

  • Tải xuống cấu hình YAML.
  • Triển khai ứng dụng bằng mã này: . Kubectl Áp dụng -f .\recommends.yaml.
  • Xác nhận rằng mọi thứ đã được thiết lập chính xác bằng cách: kubectl.exe get -f .\recommends.yaml.txt.
  • Để truy cập bảng điều khiển, hãy chạy lệnh sau trong power shell (không phải CMD)

  • Chạy đoạn mã sau ((kubectl -n kube-system mô tả mặc định bí mật | chuỗi chọn “mã thông báo:”) – tách “+”)[1]
    • Sao chép mã thông báo đã tạo và khởi động proxy kubectl.
  • Mở liên kết này trong trình duyệt của bạn.
  • Nhấp vào `Mã thông báo` và dán mã thông báo của bạn vào đây.
  • Đăng nhập.
  • 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:

  • Định cấu hình mạng – ở đây bạn cần định cấu hình mạng giữa các nút cụm; để họ liên lạc với nhau.
  • Cấu hình xác thực cụm – Tạo cơ chế xác thực và phân quyền truy cập vào cụm.
  • Cấu hình các thành phần chính; bao gồm máy chủ API, bộ lập lịch và trình quản lý bộ điều khiển.
  • Đính kèm các nút công nhân – Kết nối các nút công nhân với cụm bằng cách sử dụng các tệp cấu hình do quá trình cài đặt cụm cung cấp.
  • Triển khai các tiện ích bổ sung – Bạn có thể cài đặt các tiện ích mở rộng để mở rộng chức năng của cụm.
  • Quản lý khối lượng công việc của bạn – đã đến lúc triển khai ứng dụng của bạ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.