OpenShift - Kiến trúc
OpenShift là một hệ thống phân lớp trong đó mỗi lớp được liên kết chặt chẽ với lớp khác bằng cách sử dụng Kubernetes và cụm Docker. Kiến trúc của OpenShift được thiết kế theo cách mà nó có thể hỗ trợ và quản lý các vùng chứa Docker, được lưu trữ trên đầu tất cả các lớp bằng Kubernetes. Không giống như phiên bản trước đó của OpenShift V2, phiên bản mới của OpenShift V3 hỗ trợ cơ sở hạ tầng được container hóa. Trong mô hình này, Docker giúp tạo các vùng chứa nhẹ dựa trên Linux và Kubernetes hỗ trợ nhiệm vụ sắp xếp và quản lý các vùng chứa trên nhiều máy chủ.
Các thành phần của OpenShift
Một trong những thành phần quan trọng của kiến trúc OpenShift là quản lý cơ sở hạ tầng container trong Kubernetes. Kubernetes chịu trách nhiệm Triển khai và Quản lý cơ sở hạ tầng. Trong bất kỳ cụm Kubernetes nào, chúng ta có thể có nhiều hơn một nút chính và nhiều nút, điều này đảm bảo không có điểm nào bị lỗi trong quá trình thiết lập.
Kubernetes Master Machine Linh kiện
Etcd- 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 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ể được truy cập bởi máy chủ Kubernetes API vì nó có thể có thông tin nhạy cảm. Đó 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.
API Server- Kubernetes là một máy chủ API cung cấp tất cả cá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ó làm lộ API Kubernetes ”.
Controller Manager- 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ó có thể được coi là một daemon chạy trong một vòng lặp không kết thú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 được 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ủ sang trạng thái mong muốn. 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.
Scheduler- Nó là một 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 một nút mới.
Các thành phần nút Kubernetes
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ẹ.
Kubelet Service- Đây là một dịch vụ nhỏ trong mỗi nút, có nhiệm vụ chuyển tiếp thông tin đến và đi của dịch vụ mặt phẳng đ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ị Wright. Điều này giao tiếp với thành phần chủ để 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.
Kubernetes Proxy Service- Đâ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. Kubernetes Proxy Service 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 và truy cập được nhưng đồ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 vùng chứa mới, v.v.
Tích hợp OpenShift Container Registry
Đăng ký vùng chứa OpenShift là một đơn vị lưu trữ sẵn có của Red Hat, được sử dụng để lưu trữ hình ảnh Docker. Với phiên bản tích hợp mới nhất của OpenShift, nó đã đi kèm với giao diện người dùng để xem hình ảnh trong bộ nhớ trong của OpenShift. Các cơ quan đăng ký này có khả năng lưu giữ hình ảnh với các thẻ được chỉ định, sau này được sử dụng để tạo vùng chứa từ nó.
Các thuật ngữ thường dùng
Image- Hình ảnh Kubernetes (Docker) là khối xây dựng chính của Cơ sở hạ tầng được chứa đựng. Hiện tại, Kubernetes chỉ hỗ trợ hình ảnh Docker. Mỗi vùng chứa trong một nhóm có hình ảnh Docker của nó chạy bên trong nó. Khi định cấu hình một nhóm, thuộc tính hình ảnh trong tệp cấu hình có cùng cú pháp với lệnh Docker.
Project - Chúng có thể được định nghĩa là phiên bản được đổi tên của miền đã có trong phiên bản OpenShift V2 trước đó.
Container - Chúng là những cái được tạo sau khi hình ảnh được triển khai trên một nút cụm Kubernetes.
Node- Một nút là một máy làm việc trong Kubernetes cluster, còn được gọi là minion cho master. Chúng là các đơn vị làm việc có thể là một phiên bản vật lý, máy ảo hoặc đám mây.
Pod- Một nhóm là một tập hợp các vùng chứa và lưu trữ của nó bên trong một nút của một cụm Kubernetes. Có thể tạo một nhóm với nhiều vùng chứa bên trong nó. Ví dụ: giữ vùng chứa cơ sở dữ liệu và vùng chứa máy chủ web bên trong nhóm.