Blog chia sẻ về công nghệ ...
Published on

Yêu cầu khi cài đặt RKE2

Authors

🔐 Yêu cầu khi cài đặt RKE2

yeu-cau-khi-cai-dat-rke2

📑 Mục Lục

  1. Yêu cầu về Hardware cho RKE2
  2. Yêu cầu về Network
  3. Yêu cầu về Security
  4. Yêu cầu về hệ điều hành khi cài đặt RKE2

Yêu cầu về Hardware cho RKE2

Node Master tối thiểu

Control Plane Node (RKE2 Master Node):

  • CPU: 2 vCPU hoặc nhiều hơn
  • RAM: 4 GB hoặc nhiều hơn
  • Disk Space: Tối thiểu 20 GB trống (ưu tiên SSD, đặc biệt khi sử dụng embedded etcd)

Worker Node (RKE2 Agent):

  • CPU: 1 vCPU hoặc nhiều hơn
  • RAM: 2 GB hoặc nhiều hơn
  • Disk Space: Tối thiểu 10 GB trống

Giới hạn tài nguyên ảnh hưởng đến số lượng agent nodes

CPU máy chủRAM máy chủSố lượng agent RKE2
2 vCPU4 GB0–225
4 vCPU8 GB226–450
8 vCPU16 GB451–1300
16+ vCPU32 GB+1300+

Lưu ý khi mở rộng cluster

  • Chỉ thêm 30–50 agent nodes mỗi lần để giảm áp lực lên control-plane.
  • Khi thêm node mới, CPU và RAM trên control-plane sẽ tăng đột biến do xử lý các tài nguyên mới (pods, CRDs, network...).
  • Nếu muốn mở rộng vượt quá 255 nodes, cần điều chỉnh cluster-cidr để cấp thêm dải IP cho pod networking.

Tối ưu hóa mở rộng cluster

  • Tăng CPU/RAM cho control-plane nếu muốn thêm nhiều worker nodes.
  • Thêm agent nodes theo từng đợt nhỏ (30–50 nodes/lần).
  • Điều chỉnh cluster-cidr nếu cần quản lý hơn 255 nodes.

Yêu cầu về ổ Disk

  • Hiệu suất của RKE2 phụ thuộc vào ổ đĩa do sử dụng embedded etcd.
  • Nên dùng SSD để đảm bảo tốc độ truy xuất và hiệu suất ổn định cho vStorage của etcd và các dữ liệu runtime.

Yêu cầu về Network

Ports yêu cầu trên RKE2 Server (Control-plane)

PortProtocolMô tả
6443TCPKubernetes API Server – cho phép agent nodes và kubectl kết nối
9345TCPGiao tiếp giữa server và agent nodes

Ports yêu cầu trên tất cả các nodes (Control-plane & Worker)

PortProtocolMô tả
8472UDPGiao tiếp Flannel VXLAN – CNI networking
10250TCPThu thập metrics qua kubelet – yêu cầu để dùng metrics-server

⚠️ Lưu ý: Port 8472 không được phép mở ra Internet – nếu không sẽ khiến cluster dễ bị tấn công.

Tóm tắt các port trong hệ thống RKE2

PortProtocolSourceDestinationDescription
6443TCPAgent nodesServer nodesKubernetes API
9345TCPAgent nodesServer nodesRKE2 Supervisor API
10250TCPAll RKE2 nodesAll RKE2 nodesKubelet Metrics
2379TCPServer nodesServer nodesetcd client port
2380TCPServer nodesServer nodesetcd peer port
2381TCPServer nodesServer nodesetcd metrics port
30000–32767TCPAll RKE2 nodesAll RKE2 nodesNodePort port range

CNI Specific Inbound Network Rules

PortProtocolSourceDestinationDescription
8472UDPAll RKE2 nodesAll RKE2 nodesCanal CNI with VXLAN
9099TCPAll RKE2 nodesAll RKE2 nodesCanal CNI health checks
51820UDPAll RKE2 nodesAll RKE2 nodesWireGuard IPv4 for Canal CNI
51821UDPAll RKE2 nodesAll RKE2 nodesWireGuard IPv6/Dual-Stack for Canal CNI

Yêu cầu bảo mật (Security Requirements)

  • SELinux/AppArmor: Nên bật để tăng cường bảo mật container runtime.
  • FIPS 140-2: RKE2 hỗ trợ chế độ này cho môi trường yêu cầu tuân thủ cao.
  • Port Filtering: Không mở các port nội bộ (như UDP 8472) ra internet.
  • RBAC & Audit: Thiết lập phân quyền rõ ràng và bật audit logs.
  • API Server access: Hạn chế truy cập 6443 chỉ từ IP quản trị.

Yêu cầu về hệ điều hành khi cài đặt RKE2

  • Tắt Swap: RKE2 (và Kubernetes nói chung) không hỗ trợ hệ thống có swap. Swap cần được tắt hoàn toàn để kubelet hoạt động đúng.
  • Đồng bộ thời gian hệ thống: Đồng bộ thời gian là yêu cầu bắt buộc, đặc biệt trong môi trường có nhiều node. Nên sử dụng chrony hoặc systemd-timesyncd, ntp để đảm bảo thời gian nhất quán giữa các node trong cluster.
  • Cấu hình sysctl (kernel parameters): Một số tham số kernel cần được điều chỉnh để đáp ứng tốt cho container workload:
    • Cho phép forward IP (cần thiết cho networking)
    • Tăng giới hạn bản đồ bộ nhớ và số file mở
    • Cấu hình các giới hạn kết nối mạng hợp lý
    • Hỗ trợ tối ưu hóa cho overlay filesystem và container runtime
  • Cấu hình ulimits: Giới hạn số file và tiến trình cần được tăng lên để đáp ứng nhu cầu của các container chạy song song:
    • Tăng số file mở tối đa
    • Tăng số tiến trình cho mỗi user
    • Đảm bảo hệ thống không bị bottleneck do giới hạn OS
  • Tắt các dịch vụ không cần thiết:
    • Gỡ hoặc disable các dịch vụ không sử dụng để giảm bớt tài nguyên nền và giảm bề mặt tấn công.
    • Hạn chế các tiến trình mặc định khởi chạy cùng hệ thống, trừ những thứ cần thiết cho Kubernetes/RKE2.
  • Chọn hệ điều hành tương thích:
    • Sử dụng các hệ điều hành được RKE2 hỗ trợ chính thức: Ubuntu LTS, RHEL, Rocky Linux, CentOS Stream.
    • Tránh dùng OS quá cũ hoặc không còn nhận được bản vá bảo mật.
  • Cập nhật hệ thống:
    • Đảm bảo hệ điều hành đã được cập nhật các bản vá bảo mật và kernel ổn định.
    • Kiểm tra định kỳ các gói phần mềm và module kernel có ảnh hưởng đến container hoặc CNI.
  • Tối ưu filesystem và disk I/O:
    • Ưu tiên sử dụng ổ SSD cho etcd và dữ liệu container.
    • Tránh dùng ổ đĩa mạng (NFS, iSCSI...) cho các thành phần control-plane trừ khi được cấu hình kỹ.
    • Chọn filesystem phù hợp như ext4 hoặc xfs.