Hiểu kiến ​​trúc Kubernetes

Hãy cùng học hỏi kiến ​​trúc Kubernetes một cách chi tiết.


Tôi giả sử bạn có một sự hiểu biết cơ bản về Kubernetes. Nếu không, hãy xem các bài viết giới thiệu và cài đặt sau đây.

Kubernetes Giới thiệu cho người mới bắt đầu

Cách cài đặt Kubernetes trên Ubuntu 18?

Kubernetes theo kiến ​​trúc chủ-nô. Kiến trúc Kubernetes có nút chủ và nút worker. Có bốn thành phần của một nút chủ.

  • Máy chủ API Kube
  • bộ điều khiển
  • Người lập kế hoạch
  • vân vân

nút công nhân có ba thành phần.

  • kubelet
  • ủy quyền
  • thời gian chạy container

Đây là cách một kiến ​​trúc Kubernetes trông như thế nào:

kiến trúc kubernetes

Để tôi nói cho bạn biết về các thành phần của nút chủ và các nút worker.

Nút chủ

Nút chủ quản lý cụm Kubernetes và nó là điểm vào cho tất cả các tác vụ quản trị. Bạn có thể nói chuyện với nút chính thông qua CLI, GUI hoặc API. Để đạt được khả năng chịu lỗi, có thể có nhiều hơn một nút chính trong cụm. Khi chúng ta có nhiều nút chủ, sẽ có chế độ sẵn sàng cao và với một nhà lãnh đạo thực hiện tất cả các hoạt động. Tất cả các nút chủ khác sẽ là người theo dõi của nút chủ lãnh đạo đó.

Ngoài ra, để quản lý trạng thái cụm, Kubernetes sử dụng etcd. Tất cả các nút chính kết nối với etcd, là một kho lưu trữ khóa-giá trị phân tán.

nút chủ kubernetes

Hãy để tôi giải thích cho bạn về tất cả các thành phần này từng cái một.

Máy chủ API

API Server thực hiện tất cả các tác vụ quản trị trên nút chính. Một người dùng gửi các lệnh còn lại đến máy chủ API, sau đó xác thực các yêu cầu, sau đó xử lý và thực hiện chúng. etcd lưu trạng thái kết quả của cụm dưới dạng lưu trữ khóa-giá trị phân tán.

Người lập kế hoạch

Sau đó, chúng tôi có một lịch trình. Vì vậy, như tên cho thấy, bộ lập lịch lập lịch công việc cho các nút worker khác nhau. Nó có thông tin sử dụng tài nguyên cho mỗi nút worker. Bộ lập lịch cũng xem xét chất lượng của các yêu cầu dịch vụ, địa phương dữ liệu và nhiều thông số khác như vậy. Sau đó, bộ lập lịch lập lịch công việc về các nhóm và dịch vụ.

Quản lý điều khiển

Các vòng điều khiển không kết thúc điều chỉnh trạng thái của cụm Kubernetes được quản lý bởi Trình quản lý điều khiển. Bây giờ, mỗi một trong các vòng điều khiển này đều biết về trạng thái mong muốn của đối tượng mà nó quản lý và sau đó họ xem xét trạng thái hiện tại của mình thông qua các máy chủ API.

Trong một vòng điều khiển, nếu trạng thái mong muốn không đáp ứng trạng thái hiện tại của đối tượng, thì các bước khắc phục được thực hiện bởi vòng điều khiển để đưa trạng thái hiện tại giống như trạng thái mong muốn. Vì vậy, trình quản lý bộ điều khiển đảm bảo rằng trạng thái hiện tại của bạn giống với trạng thái mong muốn.

vân vân

Vvd là một kho lưu trữ khóa-giá trị phân tán được sử dụng để lưu trữ trạng thái cụm. Vì vậy, hoặc nó phải là một phần của chủ Kubernetes, hoặc bạn cũng có thể định cấu hình bên ngoài. etcd được viết trong goLang và nó dựa trên Đồng thuận bè thuật toán.

Chiếc bè cho phép bộ sưu tập máy móc hoạt động như một nhóm mạch lạc có thể sống sót sau những thất bại của một số thành viên. Ngay cả khi một số thành viên không hoạt động, thuật toán này vẫn có thể hoạt động tại bất kỳ thời điểm nào. Một trong các nút trong nhóm sẽ là chủ và phần còn lại sẽ là người theo dõi.

Chỉ có thể có một chủ, và tất cả các chủ khác phải theo chủ đó. Bên cạnh việc lưu trữ trạng thái cụm, etcd cũng được sử dụng để lưu trữ các chi tiết cấu hình như mạng con và bản đồ cấu hình.

Nút công nhân

Nút worker là một máy chủ ảo hoặc vật lý chạy các ứng dụng và được điều khiển bởi nút chủ. Các nhóm được lên lịch trên các nút worker, có các công cụ cần thiết để chạy và kết nối chúng. Pods không có gì ngoài một bộ sưu tập các container.

Và để truy cập các ứng dụng từ thế giới bên ngoài, bạn phải kết nối với các nút worker chứ không phải các nút master.

nút công nhân kubernetes

Hãy cùng khám phá các thành phần nút worker.

Thời gian chạy container

Thời gian chạy container về cơ bản được sử dụng để chạy và quản lý vòng đời liên tục trên nút worker. Một số ví dụ về thời gian chạy của container mà tôi có thể cung cấp cho bạn là các container rkt, lxc, v.v … Người ta thường quan sát rằng docker còn được gọi là thời gian chạy container, nhưng chính xác hơn, hãy để tôi nói với bạn rằng docker là một nền tảng sử dụng container như thời gian chạy container.

Kubelet

Kubelet về cơ bản là một tác nhân chạy trên mỗi nút worker và giao tiếp với nút master. Vì vậy, nếu bạn có mười nút worker, thì kubelet chạy trên mỗi nút worker. Nó nhận được định nghĩa pod bằng nhiều cách khác nhau và chạy các container được liên kết với cổng đó. Nó cũng đảm bảo rằng các thùng chứa là một phần của vỏ luôn khỏe mạnh.

Các kubelet kết nối với thời gian chạy container bằng khung gRPC. Các kubelet kết nối với giao diện thời gian chạy container (CRI) để thực hiện các hoạt động của container và hình ảnh. Dịch vụ hình ảnh chịu trách nhiệm cho tất cả các hoạt động liên quan đến hình ảnh trong khi dịch vụ thời gian chạy chịu trách nhiệm cho tất cả các hoạt động liên quan đến nhóm và container. Hai dịch vụ này có hai hoạt động khác nhau để thực hiện.

Để tôi nói cho bạn biết một điều thú vị, thời gian chạy của container đã được mã hóa cứng trong Kubernetes, nhưng với sự phát triển của CRI, Kubernetes giờ đây có thể sử dụng các thời gian chạy container khác nhau mà không cần phải biên dịch lại. Vì vậy, bất kỳ thời gian chạy container nào thực hiện CRI đều có thể được Kubernetes sử dụng để quản lý các nhóm, vùng chứa và hình ảnh chứa. Docker shim và CRI container là hai ví dụ về CRI shim. Với docker shim, các container được tạo bằng docker được cài đặt trên các nút worker và sau đó docker bên trong sử dụng một container để tạo và quản lý các container

Kube-proxy

Kube-proxy chạy trên mỗi nút worker làm proxy mạng. Nó lắng nghe máy chủ API cho mỗi lần tạo hoặc xóa điểm dịch vụ. Đối với mỗi điểm dịch vụ, kube-proxy đặt các tuyến để nó có thể tiếp cận với điểm đó.

Phần kết luận

Tôi hy vọng điều này sẽ giúp bạn hiểu kiến ​​trúc Kubernetes một cách tốt hơn. Kỹ năng Kubernetes luôn được yêu cầu và nếu bạn đang muốn học cách xây dựng sự nghiệp, thì hãy xem điều này Khóa học của kẻ thù.

THẺ

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map