Các tùy chọn cho kiến trúc có tính Sẵn sàng cao

Trang này giải thích hai lựa chọn cho việc cấu hình kiến trúc cho các cụm Kubernetes có tính sẵn sàng cao (HA) của bạn.

Bạn có thể thiết lập một cụm HA:

  • Với các control plane node xếp chồng, nơi các etcd node được đặt cùng vị trí với các control plane node
  • Với các etcd node bên ngoài, nơi etcd chạy trên từng node riêng biệt so với các control plane node

Bạn nên cân nhắc kỹ lưỡng những ưu điểm và nhược điểm của từng kiến trúc trước khi thiết lập một cụm HA.

Kiến trúc etcd xếp chồng

Một cụm HA xếp chồng là một kiến trúc nơi cụm lưu trữ dữ liệu phân tán được cung cấp bởi etcd được xếp chồng lên đầu cụm được hình thành bởi các node được quản lý bởi kubeadm chạy các thành phần control plane.

Mỗi control plane node chạy một instance kube-apiserver, kube-scheduler, và kube-controller-manager. kube-apiserver được expose tới các worker node bằng một bộ cân bằng tải.

Mỗi control plane node tạo một etcd member cục bộ và etcd member này chỉ giao tiếp với kube-apiserver của node đó. Tương tự áp dụng cho các instance kube-controller-managerkube-scheduler cục bộ.

Cấu trúc liên kết này kết hợp các control plane và các etcd member trên cùng một node. Điều này đơn giản hơn việc thiết lập một cụm với các etcd node bên ngoài, và đơn giản hơn để quản lý replication.

Tuy nhiên, một cụm xếp chồng có nguy cơ lỗi hàng loạt. Nếu một node bị lỗi, cả một etcd member và một instance control plane bị lỗi, và khả năng dự phòng bị ảnh hưởng. Bạn có thể giảm thiểu rủi ro này bằng cách bổ sung thêm control plane node.

Do đó, bạn nên chạy tối thiểu ba node control plane xếp chồng cho cụm HA.

Đây là kiến trúc mặc định trong kubeadm. Một etcd member cục bộ được tạo tự động trên control plane node khi sử dụng kubeadm initkubeadm join --control-plane.

Kiến trúc etcd xếp chồng

Kiến trúc etcd bên ngoài

Một cụm HA với etcd bên ngoài là một kiến trúc nơi cụm lưu trữ dữ liệu phân tán được cung cấp bởi etcd nằm ngoài cụm được hình thành bởi các node chạy các thành phần control plane.

Giống như kiến trúc etcd xếp chồng, mỗi control plane node trong một kiến trúc etcd bên ngoài chạy một instance kube-apiserver, kube-scheduler, và kube-controller-manager. Và kube-apiserver được expose tới các worker node bằng một bộ cân bằng tải. Tuy nhiên, các etcd member chạy trên từng host riêng biệt, và từng etcd host giao tiếp với kube-apiserver của từng control plane node.

Kiến trúc này tách rời control plane và etcd member. Vì thế nó cung cấp một thiết lập HA trong đó việc mất một control plane instance hoặc một etcd member có ít tác động hơn và không ảnh hưởng tới khả năng dự phòng của cụm như kiến trúc HA xếp chồng.

Tuy nhiên, kiến trúc này yêu cầu gấp đôi số lượng host so với kiến trúc HA xếp chồng. Yêu cầu tối thiểu ba host cho các control plane node và ba host cho các etcd node cho một cụm HA với kiến trúc này.

Kiến trúc etcd bên ngoài

Tiếp theo là gì

Last modified May 07, 2025 at 4:23 PM PST: [vi] update ha-topology page (0e82ce37ac)