[ad_1]
Kubernetes là trình điều phối hàng đầu để phân phối các phiên bản vùng chứa trên nhiều nút vật lý. Các nút được quản lý bởi mặt phẳng điều khiển Kubernetes, một tập hợp các thành phần duy trì trạng thái của cụm, phản ứng với các điều kiện thay đổi và xử lý các quyết định lập lịch trình.
Điều cần thiết là phải hiểu vai trò của máy bay điều khiển khi bạn đang vận hành các cụm cần tính khả dụng nhất quán. Trong bài viết này, bạn sẽ tìm hiểu điều gì sẽ xảy ra khi máy bay điều khiển bị lỗi để bạn có thể lập kế hoạch trước và triển khai các biện pháp bảo vệ.
Hiểu mặt phẳng điều khiển
Máy bay điều khiển Kubernetes chịu trách nhiệm về các hoạt động toàn cầu của cụm của bạn. Nó điều phối các hành động ảnh hưởng đến các nút công nhân của bạn. Mặt phẳng điều khiển cũng cung cấp bộ lưu trữ dữ liệu etcd cho cụm, cũng như máy chủ API mà bạn tương tác bằng các công cụ như Kubectl.
Dưới đây là một số trách nhiệm chính của máy bay điều khiển:
- kube-apiserver lưu trữ máy chủ Kubernetes API.
- kube-controller-manager khởi động và chạy các bộ điều khiển trong cụm của bạn, cho phép phát hiện và áp dụng các thay đổi trạng thái do máy chủ API yêu cầu.
- kube-Scheduler chỉ định các Pod cho các nút công nhân bằng cách xác định nút nào được trang bị tốt nhất để hỗ trợ mỗi Pod mới.
- vvd là một kho dữ liệu khóa-giá trị lưu trữ tất cả dữ liệu cụm Kubernetes và thông tin trạng thái.
Kiến trúc Kubernetes dựa vào các thành phần này liên tục có sẵn. Chúng làm việc cùng nhau để tạo ra trạng thái hoạt động bình thường, nơi mọi thứ chạy trơn tru và cụm của bạn đáp ứng mong đợi.
Điều gì xảy ra khi máy bay điều khiển bị lỗi?
Máy bay điều khiển không thấm vào đâu khi hỏng hóc. Số lượng thành phần liên quan cao có nghĩa là các bộ phận riêng lẻ có thể ngừng hoạt động và gây ra hiệu ứng kích hoạt trong cụm của bạn. Một thành phần có thể gặp sự cố hoặc máy chủ vật lý đang chạy mặt phẳng điều khiển có thể bị lỗi phần cứng.
Các hiệu ứng thực tế trên cụm của bạn sẽ khác nhau tùy thuộc vào thành phần có vấn đề. Tuy nhiên, lỗi mặt phẳng điều khiển thường sẽ ngăn bạn quản lý cụm của mình và có thể ngăn khối lượng công việc hiện có phản ứng với các sự kiện mới:
- Nếu máy chủ API bị lỗi, Kubectl, bảng điều khiển Kubernetes và các công cụ quản lý khác sẽ ngừng hoạt động.
- Nếu bộ lập lịch không thành công, các Pod mới sẽ không được phân bổ cho các nút, do đó chúng sẽ không thể truy cập được và hiển thị là bị mắc kẹt ở trạng thái Đang chờ xử lý. Điều này cũng sẽ ảnh hưởng đến các Pod cần được lên lịch lại vì Node hết tài nguyên hoặc yêu cầu mở rộng quy mô đã được gửi.
- Khi trình quản lý bộ điều khiển không thành công, các thay đổi bạn áp dụng cho cụm của mình sẽ không được chọn, vì vậy khối lượng công việc của bạn sẽ xuất hiện để giữ nguyên trạng thái trước đó của chúng.
Lỗi máy bay điều khiển ngăn bạn sửa đổi trạng thái cụm một cách hiệu quả. Các thay đổi sẽ hoàn toàn không thành công hoặc không có hiệu lực bên trong cụm.
Điều gì về Nút công nhân và Nhóm chạy?
Mặt phẳng điều khiển là một lớp quản lý nằm phía trên và trải dài trên các nút công nhân của bạn và các Nhóm của chúng. Máy bay điều khiển và người lao động độc lập với nhau. Sau khi một Pod được lên lịch cho một nút, nút đó sẽ chịu trách nhiệm thu được hình ảnh chính xác và chạy một cá thể vùng chứa.
Điều này có nghĩa là các lỗi trong máy bay điều khiển sẽ không nhất thiết loại bỏ khối lượng công việc đã ở trạng thái khỏe mạnh. Bạn thường có thể tiếp tục truy cập các Pod hiện có, ngay cả khi bạn không thể kết nối với cụm của mình bằng Kubectl. Người dùng sẽ không nhất thiết phải nhận thấy sự cố máy bay điều khiển trong thời gian ngắn.
Thời gian ngừng hoạt động lâu hơn sẽ làm tăng khả năng các nút công nhân cũng bắt đầu gặp sự cố. Các nút sẽ không thể điều chỉnh trạng thái của chúng nên có thể xảy ra mâu thuẫn. Mạng cũng có thể bắt đầu gián đoạn nếu DNS không hoạt động và nội dung của các yêu cầu được lưu trong bộ nhớ cache hết hạn.
Sự cố có thể trở nên nghiêm trọng hơn nếu một nút công nhân bắt đầu gặp sự cố trong khi máy bay điều khiển không hoạt động. Trong tình huống này, các nhóm trên nút có thể ngừng chạy nhưng phần còn lại của cụm sẽ không biết chuyện gì đang xảy ra. Sẽ không thể lên lịch lại các Pod đến một nút khác vì các nút hoạt động độc lập khi không có mặt phẳng điều khiển. Điều này sẽ làm giảm khối lượng công việc của bạn khi ngoại tuyến.
Tránh lỗi máy bay điều khiển
Bạn có thể bảo vệ khỏi sự cố máy bay điều khiển bằng cách thiết lập một cụm khả dụng cao để sao chép các chức năng của máy bay điều khiển trên một số máy. Giống như cách bạn sử dụng Kubernetes để phân phối và mở rộng các vùng chứa của riêng mình, bạn có thể áp dụng tính khả dụng cao (HA) cho chính Kubernetes để tăng khả năng phục hồi.
Kubernetes cung cấp hai cơ chế để thiết lập triển khai mặt phẳng điều khiển HA:
- Sử dụng các nút mặt phẳng điều khiển “xếp chồng”. – Cách tiếp cận này yêu cầu ít cơ sở hạ tầng hơn và hoạt động với tối thiểu ba máy. Mỗi máy sẽ chạy mặt phẳng điều khiển riêng của nó để sao chép dữ liệu từ những máy khác. Một người dẫn chương trình sẽ chịu trách nhiệm về cụm bằng cách được chỉ định làm trưởng nhóm. Nếu người lãnh đạo chuyển sang chế độ ngoại tuyến, các nút khác sẽ nhận thấy sự vắng mặt của nó và một người lãnh đạo mới sẽ được bầu. Lý tưởng nhất là bạn cần một số máy chủ lẻ, chẳng hạn như 3, 5 hoặc 7, để tối ưu hóa quy trình bầu cử.
- Sử dụng kho dữ liệu etcd bên ngoài. – Cách tiếp cận này tương tự như mô hình xếp chồng nhưng có một điểm khác biệt chính. Nó dựa trên một phiên bản etcd bên ngoài sẽ được chia sẻ bởi các nút mặt phẳng điều khiển của bạn. Điều này có thể tránh sao chép dữ liệu lãng phí. Bạn nên xem xét việc thiết lập bản sao của cụm etcd theo cách thủ công để nó không trở thành một điểm thất bại riêng biệt.
Kubernetes hiện đã hỗ trợ tốt cho các cụm với một số máy bay điều khiển. Nếu bạn quản lý cụm của riêng mình, bạn có thể thêm một nút mặt phẳng điều khiển khác bằng cách bao gồm --control-plane
gắn cờ khi bạn chạy kubeadm join
yêu cầu:
$ kubeadm join <cluster-control-plane-leader-ip>:6443 --token <cluster-join-token> --discovery-token-ca-cert-hash sha256:<cluster-discovery-token-ca-cert-hash> --certificate-key <cluster-certificate-key> --control-plane
Bản tóm tắt
Máy bay điều khiển Kubernetes có nhiệm vụ duy trì các hoạt động cấp cụm. Nó giám sát các nút công nhân của bạn, xử lý các yêu cầu API và áp dụng các hành động bên trong cụm để đạt được trạng thái mong muốn của bạn.
Khi mặt phẳng điều khiển gặp sự cố, các chức năng này sẽ không khả dụng nhưng bạn có thể tiếp tục sử dụng các Pod hiện có trong một khoảng thời gian giới hạn. Mặt phẳng điều khiển là thứ kết nối các nút lại với nhau để tạo thành một cụm; không có nó, các nút buộc phải hoạt động độc lập, không có bất kỳ nhận thức nào về nhau.
Vì máy bay điều khiển là một điểm lỗi tập trung duy nhất, các cụm quan trọng của nhiệm vụ cần phải sao chép nó trên nhiều nút chính để tối đa hóa độ tin cậy. Các cụm đa tổng thể phân phối các chức năng quản lý cụm theo cách tương tự như cách các nút công nhân làm cho vùng chứa của bạn có tính khả dụng cao. Mặc dù chúng có thể phức tạp hơn để thiết lập, nhưng phần dư thừa rất đáng để nỗ lực. Một mặt phẳng điều khiển có tính khả dụng cao cũng được cung cấp như một tính năng của các dịch vụ Kubernetes do nhiều nhà cung cấp dịch vụ đám mây quản lý.
[ad_2]