Cấu hình OpenShift trên VMware
Cấu hình Tối thiểu và Quy trình Cài đặt OpenShift Container Platform 4.17 trên VMware vSphere
I. Giới thiệu
Mục đích
Báo cáo này nhằm mục đích xác định rõ ràng các yêu cầu tối thiểu chính thức để cài đặt thành công OpenShift Container Platform (OCP) phiên bản 4.17 trên môi trường ảo hóa VMware vSphere, đồng thời cung cấp hướng dẫn chi tiết về các quy trình cài đặt phổ biến. Điều quan trọng cần nhấn mạnh là đây là các yêu cầu tối thiểu để đảm bảo chức năng cơ bản của cụm (cluster) và chưa bao gồm tài nguyên cần thiết cho khối lượng công việc (workload) trong môi trường sản xuất.
Nguồn và Phiên bản Tập trung
Các yêu cầu và quy trình được trình bày trong báo cáo này chủ yếu được tổng hợp từ tài liệu chính thức của Red Hat OpenShift Container Platform phiên bản 4.17 dành cho việc cài đặt trên vSphere. Mặc dù có các phương pháp cài đặt khác như Assisted Installer hay Agent-based Installer , các yêu cầu cốt lõi về hạ tầng nhìn chung vẫn được áp dụng. Báo cáo này tập trung cụ thể vào phiên bản 4.17, do các yêu cầu có thể thay đổi giữa các phiên bản OCP, ví dụ như yêu cầu về kiến trúc vi xử lý CPU đã thay đổi từ phiên bản 4.13.
Việc OCP có chu kỳ phát hành nhanh chóng đòi hỏi phải tuân thủ nghiêm ngặt tài liệu cho phiên bản mục tiêu cụ thể (4.17 trong trường hợp này). OCP tích hợp nhiều dự án mã nguồn mở phát triển nhanh chóng như Kubernetes (phiên bản 1.30 trong OCP 4.17 ) và CoreOS. Mỗi bản phát hành OCP đi kèm với các phiên bản cụ thể của những thành phần này, có thể có các phụ thuộc hoặc yêu cầu mới. Hơn nữa, Red Hat liên tục tinh chỉnh hỗ trợ nền tảng và các tính năng, dẫn đến các điều kiện tiên quyết được cập nhật, như yêu cầu về kiến trúc vi xử lý CPU được giới thiệu trong OCP 4.13 do dựa trên RHEL 9. Do đó, việc giả định các yêu cầu từ OCP 4.16 tự động áp dụng cho 4.17 là không an toàn; việc xác minh trực tiếp dựa trên tài liệu 4.17 là bắt buộc.
Phạm vi Báo cáo
Báo cáo tập trung vào các điều kiện tiên quyết tối thiểu và quy trình cài đặt cho việc triển khai cụm OCP 4.17 tiêu chuẩn trên VMware vSphere, sử dụng các phương pháp phổ biến như Installer-Provisioned Infrastructure (IPI), User-Provisioned Infrastructure (UPI), và Assisted Installer. Các yếu tố chính được đề cập bao gồm phiên bản môi trường VMware, tài nguyên cho các nút (node), cấu hình mạng, các cài đặt quan trọng khác và các bước thực hiện cài đặt.
II. Môi trường VMware vSphere được Hỗ trợ
Để đảm bảo cài đặt thành công và hoạt động ổn định của OCP 4.17, môi trường VMware vSphere phải đáp ứng các yêu cầu phiên bản cụ thể.
Phiên bản vCenter Server & ESXi Host
Các phiên bản tối thiểu được hỗ trợ cho cả vCenter Server và ESXi host là:
- vSphere/vCenter 7.0 Update 2 hoặc mới hơn.
- vSphere/vCenter 8.0 Update 1 hoặc mới hơn.
Tương ứng với các phiên bản vSphere này là các phiên bản VMware Cloud Foundation (VCF) được hỗ trợ:
- VCF 4.3 hoặc mới hơn (tương ứng với vSphere 7.0U2+).
- VCF 5.0 hoặc mới hơn (tương ứng với vSphere 8.0U1+).
Phiên bản Phần cứng Máy ảo (VM Hardware Version)
Tất cả các máy ảo (VM) trong cụm OCP phải sử dụng phiên bản phần cứng máy ảo (virtual machine hardware version) 15 hoặc cao hơn. Yêu cầu này đảm bảo khả năng tương thích với hệ điều hành Red Hat Enterprise Linux CoreOS (RHCOS) và các tính năng cần thiết khác, bao gồm cả chức năng của trình điều khiển Container Storage Interface (CSI).
Kiến trúc Vi xử lý CPU
Một yêu cầu cứng nhắc là tất cả các nút trong cụm phải chạy trên các máy chủ vật lý có CPU hỗ trợ tập lệnh kiến trúc (ISA) x86-64-v2 hoặc cao hơn. Yêu cầu này được đưa ra từ OCP 4.13 do hệ điều hành cơ sở RHCOS được xây dựng trên nền tảng RHEL 9.2, vốn đã nâng cấp yêu cầu về kiến trúc vi xử lý. Việc không đáp ứng yêu cầu này sẽ dẫn đến thất bại trong quá trình cài đặt hoặc hoạt động không ổn định do hệ điều hành và các thư viện cốt lõi mong đợi sự hiện diện của các tính năng CPU này. Do đó, việc kiểm tra khả năng tương thích của CPU máy chủ là bước bắt buộc.
Đồng bộ hóa Thời gian
Việc đảm bảo thời gian được đồng bộ hóa chính xác trên tất cả các ESXi host và máy chủ vCenter trước khi bắt đầu cài đặt là cực kỳ quan trọng. Sai lệch thời gian (time drift) giữa các nút có thể gây ra lỗi nghiêm trọng trong quá trình xác thực chứng chỉ, thiết lập kết nối TLS và hoạt động của thuật toán đồng thuận etcd, dẫn đến sự cố cài đặt hoặc mất ổn định cụm. Nên sử dụng một nguồn NTP (Network Time Protocol) đáng tin cậy cho toàn bộ môi trường vSphere.
Sự liên kết chặt chẽ giữa các phiên bản OCP và phiên bản nền tảng VMware cụ thể (đến cấp độ update) cùng với phiên bản phần cứng VM cho thấy sự phụ thuộc vào các tính năng hoặc bản sửa lỗi chỉ có trong các bản phát hành đó. Điều này đặc biệt liên quan đến lưu trữ (CSI ) và có thể cả tích hợp mạng nâng cao (NSX-T ). OCP tận dụng các API và tính năng của vSphere để cấp phát nút (IPI), quản lý lưu trữ (trình điều khiển CSI) và mạng nâng cao. Ví dụ, trình điều khiển CSI cho phép Kubernetes quản lý trực tiếp bộ nhớ vSphere, thay thế các plugin volume in-tree cũ hơn. Trình điều khiển CSI này có các phụ thuộc phiên bản vSphere cụ thể vì nó tương tác với các API vSphere nhất định liên quan đến hoạt động lưu trữ. Sử dụng phiên bản vSphere không được hỗ trợ có thể đồng nghĩa với việc các API cần thiết bị thiếu hoặc hoạt động khác đi, dẫn đến lỗi cấp phát bộ nhớ hoặc mất ổn định. Tương tự, phiên bản phần cứng VM 15+ có thể kích hoạt giả lập thiết bị hoặc các tính năng cụ thể mà RHCOS dựa vào.
Bảng 1: Môi trường VMware vSphere Tối thiểu được Hỗ trợ cho OCP 4.17
Thành phần | Phiên bản/Yêu cầu Tối thiểu |
vCenter Server | 7.0 Update 2+ HOẶC 8.0 Update 1+ |
ESXi Host | 7.0 Update 2+ HOẶC 8.0 Update 1+ |
VMware Cloud Foundation | 4.3+ (cho vSphere 7.0U2+) HOẶC 5.0+ (cho vSphere 8.0U1+) |
Phiên bản Phần cứng VM | 15+ |
Kiến trúc CPU (Máy chủ) | x86-64-v2+ |
Bảng này cung cấp một tham chiếu nhanh chóng, hợp nhất để quản trị viên xác minh tính tương thích của môi trường trước khi tiếp tục, ngăn chặn lãng phí nỗ lực trên cơ sở hạ tầng không tương thích và trực tiếp giải quyết các điểm (4) và (6) từ yêu cầu ban đầu của người dùng.
III. Yêu cầu Tài nguyên Tối thiểu cho Node
Việc cấp phát đủ tài nguyên cho các máy ảo đóng vai trò khác nhau trong cụm OCP là điều cần thiết. Các con số dưới đây là mức tối thiểu tuyệt đối cho một cụm cơ bản.
Nút Control Plane (Master Nodes)
- vCPU: 4
- RAM: 16 GB
- Dung lượng lưu trữ (Storage): 100 GB
- IOPS (Input/Output Operations Per Second): 300
- Hệ điều hành: Red Hat Enterprise Linux CoreOS (RHCOS)
Đặc biệt lưu ý rằng thành phần etcd, chạy trên các nút control plane, rất nhạy cảm với độ trễ của bộ nhớ lưu trữ (storage latency). Yêu cầu về thời gian fsync p99 là 10 mili giây (ms). Không đáp ứng yêu cầu này có thể dẫn đến mất ổn định nghiêm trọng cho toàn bộ cụm.
Nút Worker (Compute Nodes)
- vCPU: 2
- RAM: 8 GB
- Dung lượng lưu trữ: 100 GB
- IOPS: 300
- Hệ điều hành: RHCOS hoặc Red Hat Enterprise Linux (RHEL) 8.6 trở lên
Nếu chọn sử dụng RHEL cho các nút worker, người dùng hoàn toàn chịu trách nhiệm về việc quản lý vòng đời và bảo trì hệ điều hành đó, bao gồm cập nhật hệ thống và áp dụng bản vá. Điều này trái ngược với bản chất được quản lý, bất biến của RHCOS, vốn được cập nhật và cấu hình thông qua OCP. Lựa chọn RHEL có thể linh hoạt hơn khi cần tích hợp các công cụ quản lý hiện có hoặc các module kernel cụ thể, nhưng làm tăng chi phí vận hành.
Nút Bootstrap (Tạm thời)
- vCPU: 4 (Thường tương tự control plane)
- RAM: 16 GB
- Dung lượng lưu trữ: 100 GB
- Hệ điều hành: RHCOS
Nút bootstrap chỉ cần thiết trong quá trình cài đặt để khởi tạo cụm control plane và etcd. Sau khi cài đặt hoàn tất, nút này có thể và nên được xóa đi.
Hiệu năng Lưu trữ (Storage Performance)
Yêu cầu IOPS tối thiểu là 300 cho mỗi nút. Tuy nhiên, các thành phần của Kubernetes và OCP, đặc biệt là etcd, rất nhạy cảm với hiệu năng I/O. Etcd là kho lưu trữ khóa-giá trị phân tán duy trì trạng thái của toàn bộ cụm Kubernetes. Nó dựa vào thuật toán đồng thuận Raft, yêu cầu ghi dữ liệu xuống đĩa (fsync) kịp thời để đảm bảo độ bền và tính nhất quán trên các nút control plane. Nếu độ trễ đĩa cao hoặc IOPS không đủ (không đáp ứng mục tiêu fsync p99 10ms ), hoạt động của etcd sẽ chậm lại, có khả năng dẫn đến lỗi bầu chọn leader, không thể commit thay đổi trạng thái và cuối cùng là một control plane không hoạt động hoặc bị suy giảm nghiêm trọng. Do đó, hiệu năng của etcd là tối quan trọng.
Để đạt được IOPS đủ, có thể cần phải cấp phát dung lượng ổ đĩa lớn hơn mức tối thiểu 100GB, tùy thuộc vào đặc tính hiệu năng của hệ thống lưu trữ cơ bản (thường IOPS tăng theo dung lượng). Nên ưu tiên sử dụng bộ nhớ lưu trữ nhanh hơn, đặc biệt là cho các nút control plane.
Cấu hình Bộ nhớ (Memory Configuration)
Tuyệt đối không sử dụng tính năng memory ballooning của VMware cho các máy ảo OCP vì nó có thể gây mất ổn định và suy giảm dịch vụ. Nên cấu hình bộ nhớ cam kết (committed memory/reservations) cho các nút control plane bằng hoặc lớn hơn mức RAM tối thiểu. Đối với các nút worker, cần có mức reservation tối thiểu bằng hoặc lớn hơn mức RAM tối thiểu.
Lưu ý về Workload
Cần nhấn mạnh lại rằng các yêu cầu tài nguyên tối thiểu này không bao gồm tài nguyên cần thiết cho các ứng dụng người dùng. Các cụm sản xuất đòi hỏi phải bổ sung tài nguyên đáng kể dựa trên nhu cầu dự kiến của workload chạy trên đó. Việc đánh giá thấp hiệu năng lưu trữ là một con đường phổ biến dẫn đến một cụm không ổn định.
Bảng 2: Yêu cầu Tài nguyên Tối thiểu cho mỗi VM trong OCP 4.17
Loại Node | Hệ điều hành | vCPU Tối thiểu | RAM Tối thiểu (GB) | Lưu trữ Tối thiểu (GB) | IOPS Tối thiểu | Ghi chú |
Control Plane (Master) | RHCOS | 4 | 16 | 100 | 300 | Yêu cầu độ trễ lưu trữ thấp (<10ms p99 fsync) cho etcd |
Worker (Compute) | RHCOS / RHEL 8.6+ | 2 | 8 | 100 | 300 | Nếu dùng RHEL, người dùng tự quản lý OS |
Bootstrap (Tạm thời) | RHCOS | 4 | 16 | 100 | 300 | Có thể xóa sau khi cài đặt hoàn tất |
Bảng này cung cấp thông số kỹ thuật rõ ràng cho việc định cỡ VM trong quá trình cấp phát hạ tầng, trực tiếp giải quyết khía cạnh yêu cầu tài nguyên cốt lõi (3) của truy vấn người dùng và làm nổi bật chỉ số IOPS quan trọng thường bị bỏ qua.
IV. Điều kiện Tiên quyết về Cấu hình Mạng
Cấu hình mạng chính xác là yếu tố nền tảng cho sự thành công của việc cài đặt và vận hành OCP.
Mạng ảo (Virtual Networking)
- Port Groups: Cần phải có một vSphere Port Group được cấu hình sẵn cho các nút trong cụm. Trình cài đặt (IPI) hoặc người dùng (UPI) cần có quyền gán máy ảo vào mạng này.
- Các Port Yêu cầu: Việc đảm bảo các cổng mạng cần thiết được mở cho giao tiếp nội bộ cụm (giữa các nút và giữa nút với control plane) là bắt buộc. Các cổng/giao thức quan trọng bao gồm:
- etcd: TCP 2379, 2380 (giữa các control plane)
- Kubernetes API Server: TCP 6443 (từ node/client đến control plane)
- Machine Config Server: TCP 22623 (từ node đến control plane, trong quá trình bootstrap)
- Mạng Overlay (OVN-Kubernetes/OpenShift SDN): UDP 4789 (VXLAN) hoặc 6081 (Geneve)
- Kubernetes NodePort Range: TCP/UDP 30000-32767 (giữa các nút/từ bên ngoài)
- Dịch vụ cấp Host: TCP 9000-9999, 10250-10259
- Metrics: TCP 1936 Cần cấu hình tường lửa (firewall) để cho phép lưu lượng truy cập này.
- Truy cập vCenter/ESXi: Các nút control plane phải có khả năng kết nối đến vCenter và các ESXi host qua cổng TCP 443 để phục vụ cho quá trình cài đặt IPI và các hoạt động liên tục như quản lý lưu trữ (CSI) và quản lý máy ảo (machine management).
Địa chỉ IP (IP Addressing)
- DHCP vs Static IP: Có thể sử dụng DHCP cho mạng cụm, nhưng khuyến nghị nên cấu hình IP cố định (thông qua DHCP reservation hoặc cấu hình tĩnh), đặc biệt cho các nút control plane. Nếu sử dụng IP tĩnh, chúng cần được định nghĩa trong tệp install-config.yaml (cho UPI) hoặc thông qua các cấu hình node cụ thể.
- API và Ingress VIPs: Yêu cầu bắt buộc là phải có hai địa chỉ IP ảo (VIP) chuyên dụng được cấp phát trước khi cài đặt:
- Một VIP cho Kubernetes API (api.<cluster>.<domain>).
- Một VIP cho lưu lượng truy cập ứng dụng (Ingress) (*.apps.<cluster>.<domain>). Các VIP này nên nằm ngoài dải cấp phát của DHCP (nếu DHCP được sử dụng cho các nút). Chúng thường được quản lý bởi một bộ cân bằng tải (load balancer) bên ngoài (đặc biệt trong UPI ) hoặc có thể được quản lý nội bộ bởi Keepalived/HAProxy trên các nút (IPI có thể cấu hình Keepalived nhưng vẫn yêu cầu IP trước ). Việc cấp phát các VIP tĩnh này từ kế hoạch mạng đảm bảo chúng không thay đổi và cho phép cấu hình DNS và cân bằng tải chính xác trước khi quá trình cài đặt cụm dựa vào chúng. Điều này đòi hỏi phải lập kế hoạch trong chiến lược phân bổ IP của tổ chức.
Cấu hình DNS
- Tính thiết yếu: Cấu hình DNS chính xác là điều kiện tiên quyết tuyệt đối cho việc cài đặt và hoạt động ổn định của cụm OCP. Các thành phần OCP phụ thuộc rất nhiều vào DNS để khám phá dịch vụ.
- Các Bản ghi DNS Bắt buộc: Cần tạo các bản ghi sau trên máy chủ DNS phù hợp:
- api.<cluster_name>.<base_domain>.: Bản ghi A/AAAA hoặc CNAME trỏ đến API VIP. Phải phân giải được từ cả bên trong và bên ngoài cụm.
- api-int.<cluster_name>.<base_domain>.: Bản ghi A/AAAA hoặc CNAME trỏ đến API VIP. Phải phân giải được từ bên trong cụm để các nút bootstrap và giao tiếp nội bộ.
- *.apps.<cluster_name>.<base_domain>.: Bản ghi Wildcard A/AAAA hoặc CNAME trỏ đến Ingress VIP. Phải phân giải được từ cả bên trong và bên ngoài cụm để truy cập ứng dụng.
- Bản ghi SRV (có thể cần thiết, đặc biệt cho UPI): Ví dụ: _etcd-server-ssl._tcp.<cluster_name>.<base_domain>. để các nút etcd tìm thấy nhau.
- Bản ghi Node (Tùy chọn nhưng Khuyến nghị): Bản ghi A/AAAA và PTR cho từng nút (master, worker, bootstrap) được khuyến nghị cao để khắc phục sự cố và phân giải nội bộ.
- Base Domain & Cluster Name: Cần chọn một tên miền cơ sở (base domain) và tên cụm (cluster name). Chúng sẽ tạo thành hậu tố cho tất cả các bản ghi DNS của cụm.
Cấu hình mạng, đặc biệt là DNS và các cổng tường lửa , là khu vực phổ biến nhất gây ra lỗi cài đặt. Việc kiểm tra trước (pre-flight checks) và phối hợp với đội ngũ mạng là rất quan trọng. Các bản ghi DNS không chính xác hoặc bị thiếu sẽ ngăn các thành phần kết nối, làm dừng quá trình cài đặt hoặc gây ra lỗi runtime. Tương tự, tường lửa chặn các cổng bắt buộc sẽ ngăn chặn giao tiếp cần thiết cho việc bootstrap control plane (cổng 22623), truy cập API (6443), mạng overlay (cổng VXLAN/Geneve), và kiểm tra tình trạng giữa các nút.
Bảng 3: Các Cổng Mạng Thiết yếu cho Giao tiếp Cụm OCP 4.17
Cổng (Port(s)) | Giao thức (Protocol) | Hướng/Phạm vi (Direction/Scope) | Mục đích (Purpose) |
6443 | TCP | Node/Client -> Control Plane | Kubernetes API Server |
22623 | TCP | Node -> Control Plane (Bootstrap) | Machine Config Server |
2379, 2380 | TCP | Control Plane <-> Control Plane | etcd server/peer communication |
4789 / 6081 | UDP | Node <-> Node | Mạng Overlay (VXLAN / Geneve) |
9000-9999 | TCP/UDP | Node <-> Node / Control Plane | Dịch vụ cấp Host (Node Exporter, CVO, etc.) |
10250-10259 | TCP | Node <-> Node / Control Plane | Dịch vụ Kubernetes (Kubelet, etc.) |
30000-32767 | TCP/UDP | External/Node -> Node | Kubernetes NodePort Service Range |
443 | TCP | Control Plane -> vCenter/ESXi | Tương tác với vSphere API (IPI, CSI, Machine API) |
Lưu ý: Bảng này liệt kê các cổng chính yếu, không phải là danh sách đầy đủ. Tham khảo tài liệu OCP 4.17 chính thức để biết chi tiết.
Bảng 4: Ví dụ về Yêu cầu Bản ghi DNS cho OCP 4.17
Tên Bản ghi (Ví dụ) | Loại Bản ghi (Type) | Trỏ tới (Points To) | Phân giải bởi (Resolvable By) |
api.mycluster.example.com | A/AAAA/CNAME | <api_vip> | Nội bộ & Bên ngoài |
api-int.mycluster.example.com | A/AAAA/CNAME | <api_vip> | Nội bộ |
*.apps.mycluster.example.com | A/AAAA/CNAME | <ingress_vip> | Nội bộ & Bên ngoài |
etcd-0.mycluster.example.com | A/AAAA & PTR | <etcd-0_ip> | Nội bộ (Khuyến nghị) |
master-0.mycluster.example.com | A/AAAA & PTR | <master-0_ip> | Nội bộ (Khuyến nghị) |
worker-0.mycluster.example.com | A/AAAA & PTR | <worker-0_ip> | Nội bộ (Khuyến nghị) |
Lưu ý: Thay thế <api_vip>, <ingress_vip>, <cluster_name>, <base_domain>, và <node_ip> bằng các giá trị thực tế.
V. Điều kiện Tiên quyết và Khuyến nghị Thiết yếu Khác
Ngoài các yêu cầu về hạ tầng và mạng, một số yếu tố khác cũng đóng vai trò quan trọng.
Quyền Tài khoản vCenter (vCenter Account Privileges)
Cần có một tài khoản người dùng vCenter với đủ quyền hạn để trình cài đặt OCP (IPI) hoặc người dùng (UPI) thực hiện các tác vụ cần thiết. Mặc dù sử dụng tài khoản quản trị viên toàn cục (global administrator) là cách đơn giản nhất , có thể cấp phát các quyền hạn cụ thể, chi tiết nếu chính sách bảo mật yêu cầu. Tài liệu chính thức cung cấp danh sách chi tiết các quyền cần thiết cho các đối tượng vSphere khác nhau (vCenter, Cluster, Resource Pool, Datastore, Port Group, Folder, etc.) bao gồm các thao tác với máy ảo, lưu trữ, mạng, gắn thẻ (tagging). Việc thiếu quyền hạn cần thiết sẽ khiến quá trình cài đặt IPI thất bại hoặc ngăn cản việc thực hiện các bước thủ công trong UPI. Danh sách quyền hạn mở rộng này cho thấy sự tích hợp sâu sắc của OCP (đặc biệt là IPI) với vSphere. Việc cấp các quyền này đòi hỏi phải xem xét cẩn thận các chính sách bảo mật. Trình cài đặt OCP (cho IPI) hoặc các thành phần cụm (như machine-api operator và CSI driver, ngay cả trong UPI) cần thực hiện các hành động trong vSphere thay mặt cho cụm. Điều này bao gồm tạo/xóa/sửa đổi VM, gắn/tháo đĩa ảo (PV), cấu hình giao diện mạng VM, tạo/quản lý thư mục và áp dụng thẻ. Mỗi hành động này yêu cầu các đặc quyền cụ thể trong vCenter. Nếu không có bộ quyền hạn đầy đủ, các hoạt động tự động này sẽ thất bại.
Trình điều khiển vSphere CSI (vSphere CSI Driver)
vSphere Container Storage Interface (CSI) Driver Operator chịu trách nhiệm quản lý việc cấp phát và vòng đời của bộ nhớ lưu trữ bền vững (persistent volumes - PVs) trên vSphere. Việc cài đặt và hoạt động của nó yêu cầu phiên bản vSphere/vCenter tối thiểu là 7.0U2+ hoặc 8.0U1+ và phiên bản phần cứng VM 15+. Tính năng di chuyển sang CSI (CSI migration) được bật mặc định trong các phiên bản OCP gần đây , thay thế các plugin lưu trữ in-tree cũ. Cần đảm bảo không có trình điều khiển vSphere CSI của bên thứ ba nào khác được cài đặt trong cụm, vì sự hiện diện của nó có thể ngăn cản việc cập nhật lên OCP 4.13 trở lên.
Hạn chế về vMotion
Cần lưu ý rằng Storage vMotion không được hỗ trợ cho các máy ảo OCP và có thể gây ra sự cố với PV, dẫn đến nguy cơ mất dữ liệu. Compute vMotion (di chuyển máy ảo giữa các host ESXi) thường được hỗ trợ nếu tuân thủ các thực tiễn tốt nhất của VMware và sử dụng các quy tắc chống tương đồng (anti-affinity rules) để cải thiện tính sẵn sàng. Không nên sử dụng datastore clusters hoặc bật Storage DRS cho các máy ảo hoặc PV được quản lý bởi OCP. Các hạn chế nghiêm ngặt này cho thấy xung đột tiềm ẩn giữa việc quản lý lưu trữ của OCP (thông qua CSI) và các tính năng tự động hóa lưu trữ của vSphere. Trình điều khiển CSI của OCP duy trì các đối tượng PV trong Kubernetes ánh xạ trực tiếp đến các tệp VMDK cụ thể trên các datastore cụ thể. Storage vMotion di chuyển VMDK giữa các datastore, có khả năng làm mất hiệu lực đường dẫn hoặc tham chiếu được lưu trữ trong đối tượng PV bên trong Kubernetes, dẫn đến việc pod không thể mount bộ nhớ của chúng. Storage DRS có thể tự động di chuyển VMDK dựa trên tải hoặc sử dụng dung lượng, gây ra vấn đề tương tự mà không cần sự can thiệp trực tiếp của người dùng. OCP mong đợi các backend PV giữ nguyên trạng thái tĩnh trừ khi được quản lý rõ ràng thông qua các hoạt động lưu trữ Kubernetes. Việc tắt Storage DRS cho các datastore OCP và tránh Storage vMotion cho các VM OCP ngăn chặn các xung đột này.
Truy cập Internet / Cài đặt Không kết nối (Disconnected Installation)
Theo mặc định, quá trình cài đặt yêu cầu truy cập internet để tải các image cần thiết từ các registry của Red Hat (Quay.io, registry.redhat.io) và để liên lạc với Red Hat Cloud Services cho việc quản lý đăng ký (subscription) và Telemetry. Có thể thực hiện cài đặt trong môi trường không có internet (disconnected/restricted network), nhưng đòi hỏi sự chuẩn bị kỹ lưỡng, bao gồm việc sao chép (mirroring) các container image cần thiết vào một registry cục bộ và có thể cần tạo các image RHCOS tùy chỉnh.
Khóa SSH (SSH Key)
Cần cung cấp một khóa công khai SSH (SSH public key) trong quá trình cấu hình cài đặt (thông qua install-config.yaml). Khóa này cho phép truy cập SSH vào các nút RHCOS với người dùng core để phục vụ mục đích khắc phục sự cố.
Pull Secret
Cần tải về một Pull Secret từ trang Red Hat OpenShift Cluster Manager (cloud.redhat.com) bằng tài khoản Red Hat. Secret này chứa thông tin xác thực cho phép cụm tải về các image phần mềm OCP từ các registry được bảo vệ của Red Hat.
VI. Danh sách Kiểm tra Tóm tắt Yêu cầu Tối thiểu
Dưới đây là danh sách kiểm tra tóm tắt các yêu cầu tối thiểu đã thảo luận, dùng như một công cụ xác minh nhanh trước khi bắt đầu cài đặt OCP 4.17 trên VMware vSphere.
- Môi trường VMware:
- [ ] vCenter Server: 7.0 Update 2+ HOẶC 8.0 Update 1+
- [ ] ESXi Host: 7.0 Update 2+ HOẶC 8.0 Update 1+
- [ ] Phiên bản Phần cứng VM: 15+
- [ ] Kiến trúc CPU Máy chủ: x86-64-v2+
- [ ] Đồng bộ hóa Thời gian (NTP): Đã cấu hình và hoạt động
- Tài nguyên Node (Control Plane):
- [ ] Hệ điều hành: RHCOS
- [ ] vCPU: 4
- [ ] RAM: 16 GB (có reservation)
- [ ] Lưu trữ: 100 GB
- [ ] IOPS: 300+ (độ trễ thấp <10ms p99 fsync)
- Tài nguyên Node (Worker/Compute):
- [ ] Hệ điều hành: RHCOS hoặc RHEL 8.6+
- [ ] vCPU: 2
- [ ] RAM: 8 GB (có reservation tối thiểu)
- [ ] Lưu trữ: 100 GB
- [ ] IOPS: 300+
- Tài nguyên Node (Bootstrap - Tạm thời):
- [ ] Hệ điều hành: RHCOS
- [ ] vCPU: 4
- [ ] RAM: 16 GB
- [ ] Lưu trữ: 100 GB
- Lưu trữ vSphere:
- [ ] Storage vMotion: Không sử dụng cho VM OCP
- [ ] Storage DRS: Tắt cho datastore chứa VM/PV OCP
- Mạng:
- [ ] Port Group vSphere: Đã cấu hình
- [ ] Tường lửa: Mở các cổng cần thiết (xem Bảng 3)
- [ ] API VIP: Đã cấp phát IP tĩnh
- [ ] Ingress VIP: Đã cấp phát IP tĩnh
- [ ] DNS: Bản ghi api, api-int, *.apps đã tạo và trỏ đúng VIP
- [ ] DNS: Bản ghi PTR và Node (A/AAAA) được khuyến nghị
- vCenter & Khác:
- [ ] Tài khoản vCenter: Đủ quyền hạn (xem tài liệu chính thức)
- [ ] Red Hat Pull Secret: Đã tải về
- [ ] Khóa Công khai SSH: Sẵn sàng để cung cấp
- Kết nối:
- [ ] Internet: Có sẵn (cho cài đặt mặc định) HOẶC Mirror Registry đã chuẩn bị (cho disconnected)
Tuyên bố Miễn trừ Trách nhiệm: Danh sách này chỉ bao gồm các yêu cầu tối thiểu. Môi trường sản xuất đòi hỏi phải lập kế hoạch dung lượng cẩn thận dựa trên khối lượng công việc ứng dụng thực tế. Luôn tham khảo tài liệu chính thức đầy đủ của OpenShift Container Platform 4.17 để biết chi tiết đầy đủ và các cấu hình nâng cao.
VII. Các Phương pháp Cài đặt
OpenShift Container Platform 4.17 hỗ trợ nhiều phương pháp cài đặt trên VMware vSphere. Các phương pháp chính bao gồm:
- Installer-Provisioned Infrastructure (IPI): Trình cài đặt tự động hóa việc tạo và quản lý hạ tầng cơ bản (VMs, disks, networks) trên vSphere. Đây là phương pháp mặc định và đơn giản hóa quá trình triển khai.
- User-Provisioned Infrastructure (UPI): Người dùng chịu trách nhiệm chuẩn bị và cấu hình toàn bộ hạ tầng (VMs, mạng, load balancers, DNS) trước khi chạy trình cài đặt OCP. Phương pháp này mang lại sự linh hoạt cao hơn nhưng đòi hỏi nhiều công sức chuẩn bị hơn.
- Assisted Installer: Sử dụng giao diện web trên Red Hat Hybrid Cloud Console để hướng dẫn quá trình cài đặt, bao gồm việc tạo Discovery ISO để tự động hóa việc đăng ký và cấu hình các nút. Phù hợp cho cả môi trường kết nối và bán kết nối.
- Agent-based Installer: Được thiết kế cho các môi trường hoàn toàn không có kết nối internet (air-gapped) hoặc mạng bị hạn chế nghiêm ngặt.
Phần tiếp theo sẽ trình bày chi tiết các bước cho ba phương pháp phổ biến: IPI, UPI và Assisted Installer.
VIII. Quy trình Cài đặt Chi tiết
A. Cài đặt sử dụng Hạ tầng do Trình cài đặt Cung cấp (IPI)
Phương pháp IPI tự động hóa phần lớn việc tạo hạ tầng trên vSphere.
- Chuẩn bị Môi trường:
- Đảm bảo tất cả các yêu cầu về phiên bản vSphere, tài nguyên node, mạng (bao gồm Port Group, cổng firewall), DNS (cần cấp phát trước API VIP và Ingress VIP), và đồng bộ hóa thời gian được đáp ứng (Xem các phần II, III, IV, V).
- Chuẩn bị tài khoản vCenter với đủ quyền hạn. Nếu sử dụng chứng chỉ tự ký cho vCenter/ESXi, thêm CA gốc vào hệ thống tin cậy của máy chạy cài đặt.
- Tải về Red Hat Pull Secret từ cloud.redhat.com.
- Tạo cặp khóa SSH để truy cập các nút.
- Đảm bảo máy chạy cài đặt có kết nối internet (trừ khi cài đặt disconnected).
- Tải về Công cụ Cài đặt:
- Tải về trình cài đặt openshift-install và OpenShift CLI (oc) cho hệ điều hành của bạn từ trang Red Hat OpenShift Cluster Manager. Đặt chúng vào PATH của hệ thống.
- Tạo Tệp Cấu hình Cài đặt (install-config.yaml):
- Tạo một thư mục làm việc (ví dụ: ocp-install).
- Chạy lệnh openshift-install create install-config --dir=<thư_mục_làm_việc>.
- Trình cài đặt sẽ hỏi các thông tin cần thiết một cách tương tác:
- Khóa SSH công khai.
- Nền tảng (Chọn vsphere).
- Thông tin vCenter (tên máy chủ, tên người dùng, mật khẩu).
- Chứng chỉ CA vCenter (nếu tự ký).
- Datacenter, Cluster, Datastore, Mạng (Port Group) vSphere.
- API VIP và Ingress VIP (đã cấp phát trước).
- Tên miền cơ sở (Base Domain).
- Tên cụm (Cluster Name).
- Pull Secret.
- Trình cài đặt sẽ tạo tệp install-config.yaml trong thư mục làm việc. Bạn có thể chỉnh sửa tệp này để tùy chỉnh thêm nếu cần (ví dụ: số lượng worker node, cấu hình proxy, IP tĩnh cho node).
- (Tùy chọn) Tùy chỉnh Manifests:
- Nếu cần tùy chỉnh sâu hơn các tài nguyên Kubernetes trước khi cài đặt (ví dụ: cấu hình mạng nâng cao, cấu hình máy), chạy lệnh: openshift-install create manifests --dir=<thư_mục_làm_việc>.
- Lệnh này sẽ tạo ra các tệp manifest trong thư mục manifests và openshift. Chỉnh sửa các tệp này theo nhu cầu.
- Lưu ý: Bước này dành cho người dùng nâng cao. Hầu hết các cài đặt IPI tiêu chuẩn không cần bước này.
- Triển khai Cụm:
- Chạy lệnh: openshift-install create cluster --dir=<thư_mục_làm_việc>.
- Trình cài đặt sẽ sử dụng install-config.yaml (và các manifest đã tùy chỉnh, nếu có) để:
- Tạo một VM bootstrap tạm thời.
- Tạo các VM control plane và worker trên vSphere.
- Cấu hình mạng, lưu trữ và các thành phần OCP.
- Khởi tạo cụm.
- Quá trình này có thể mất từ 30-60 phút hoặc lâu hơn tùy thuộc vào môi trường. Theo dõi output trên terminal.
- Truy cập Cụm:
- Sau khi cài đặt thành công, trình cài đặt sẽ hiển thị thông tin đăng nhập:
- URL của Web Console (ví dụ: https://console-openshift-console.apps.<tên_cụm>.<tên_miền_cơ_sở>).
- Tên người dùng kubeadmin và mật khẩu tạm thời.
- Đường dẫn đến tệp kubeconfig (thường là <thư_mục_làm_việc>/auth/kubeconfig).
- Lưu lại mật khẩu kubeadmin một cách an toàn.
- Cấu hình oc CLI để sử dụng tệp kubeconfig: export KUBECONFIG=<thư_mục_làm_việc>/auth/kubeconfig.
- Kiểm tra trạng thái cụm: oc get nodes, oc get clusteroperators.
- Cấu hình Sau Cài đặt:
- Đăng nhập vào Web Console hoặc sử dụng oc với tài khoản kubeadmin.
- Thiết lập nhà cung cấp danh tính (Identity Provider) để quản lý người dùng thay vì sử dụng kubeadmin.
- Cấu hình lưu trữ bền vững (Persistent Volume - PV) cho Image Registry nếu cần (mặc định registry có thể không được cấu hình với PV).
- Xóa VM bootstrap (IPI thường tự động xóa, nhưng cần kiểm tra lại).
B. Cài đặt sử dụng Hạ tầng do Người dùng Cung cấp (UPI)
Phương pháp UPI yêu cầu bạn chuẩn bị hạ tầng trước.
- Chuẩn bị Hạ tầng và Môi trường:
- VMs: Tạo thủ công các máy ảo trên vSphere cho:
- 1 Bootstrap node (tạm thời).
- 3 Control Plane (Master) nodes.
- Ít nhất 2 Worker (Compute) nodes.
- Sử dụng cấu hình tài nguyên tối thiểu (vCPU, RAM, Disk, IOPS) như trong Phần III.
- Cài đặt hệ điều hành RHCOS lên các máy ảo này (có thể tải về dưới dạng OVA hoặc VMDK từ Red Hat). Đảm bảo bật disk.EnableUUID=TRUE cho mỗi VM.
- Mạng:
- Cấu hình địa chỉ IP tĩnh cho tất cả các node.
- Cấu hình vSphere Port Group.
- Mở các cổng firewall cần thiết (Xem Bảng 3).
- Load Balancers: Cấu hình 2 bộ cân bằng tải (Load Balancer) bên ngoài :
- Một cho API server (ports 6443 và 22623), trỏ đến các Control Plane nodes.
- Một cho Ingress router (ports 80 và 443), trỏ đến các Worker nodes.
- DNS: Tạo tất cả các bản ghi DNS bắt buộc (api, api-int, *.apps, SRV cho etcd, bản ghi A/PTR cho các node) trỏ đến các VIP của Load Balancer hoặc IP tĩnh của node tương ứng.
- Máy chủ HTTP/Matchbox (Tùy chọn): Thiết lập một máy chủ web để cung cấp các tệp Ignition cho các node RHCOS khi khởi động.
- Điều kiện tiên quyết khác: Chuẩn bị Pull Secret, khóa SSH, tài khoản vCenter (quyền hạn có thể ít hơn IPI nhưng vẫn cần thiết cho các Operator như CSI), đảm bảo đồng bộ hóa thời gian.
- Tải về Công cụ Cài đặt:
- Tải về openshift-install và oc CLI.
- Tạo Tệp Cấu hình Cài đặt (install-config.yaml):
- Tạo thư mục làm việc.
- Tạo tệp install-config.yaml thủ công hoặc sử dụng openshift-install create install-config nhưng xóa hoặc bỏ qua các phần liên quan đến cấp phát hạ tầng (platform.vsphere) vì bạn đã tự cung cấp. Chỉ giữ lại các thông tin cơ bản như baseDomain, clusterName, pullSecret, sshKey, controlPlane, compute (chỉ định replicas: 0 nếu không muốn trình cài đặt tạo manifest cho chúng).
- Tạo Tệp Ignition:
- Chạy lệnh: openshift-install create ignition-configs --dir=<thư_mục_làm_việc>.
- Lệnh này sẽ tạo ra các tệp bootstrap.ign, master.ign, và worker.ign trong thư mục làm việc. Các tệp này chứa cấu hình ban đầu cho từng loại node.
- Cung cấp Tệp Ignition cho VMs:
- Đặt các tệp .ign lên máy chủ HTTP đã chuẩn bị ở Bước 1.
- Cấu hình từng máy ảo RHCOS (bootstrap, master, worker) để lấy tệp Ignition tương ứng khi khởi động. Có thể thực hiện qua:
- VMware GuestInfo: Sử dụng thuộc tính guestinfo.ignition.config.data và guestinfo.ignition.config.data.encoding trong cấu hình VM để truyền nội dung tệp Ignition (thường mã hóa base64).
- Kernel Arguments (coreos-installer iso): Nếu cài RHCOS từ ISO, có thể truyền URL của tệp Ignition qua kernel argument ignition.config.url=http://<địa_chỉ_máy_chủ_http>/<tên_tệp>.ign.
- Khởi động Cụm:
- Bật máy ảo Bootstrap trước. Nó sẽ bắt đầu thiết lập cụm etcd tạm thời.
- Sau đó, bật các máy ảo Control Plane. Chúng sẽ kết nối với bootstrap node và hình thành control plane ban đầu.
- Cuối cùng, bật các máy ảo Worker.
- Theo dõi Quá trình Cài đặt:
- Sử dụng lệnh: openshift-install wait-for bootstrap-complete --dir=<thư_mục_làm_việc>.
- Lệnh này sẽ theo dõi cho đến khi control plane ổn định và bootstrap hoàn tất. Quá trình này có thể mất nhiều thời gian.
- Sau khi lệnh báo thành công, bạn có thể xóa máy ảo Bootstrap một cách an toàn.
- Phê duyệt Chứng chỉ cho Worker Nodes:
- Các worker node sẽ yêu cầu chứng chỉ để tham gia cụm. Theo dõi các yêu cầu chứng chỉ (CSRs) đang chờ xử lý: oc get csr.
- Phê duyệt các CSRs đang chờ từ các worker node: oc adm certificate approve <tên_csr>.
- Truy cập Cụm:
- Trình cài đặt sẽ tạo tệp kubeconfig trong <thư_mục_làm_việc>/auth/kubeconfig.
- Sử dụng tệp này và thông tin đăng nhập kubeadmin (mật khẩu trong <thư_mục_làm_việc>/auth/kubeadmin-password) để truy cập cụm bằng oc CLI hoặc Web Console.
- Kiểm tra trạng thái: oc get nodes, oc get clusteroperators.
- Cấu hình Sau Cài đặt:
- Tương tự như IPI: Thiết lập Identity Provider, cấu hình lưu trữ cho Image Registry.
C. Cài đặt sử dụng Assisted Installer
Phương pháp này sử dụng giao diện web trên Red Hat Hybrid Cloud Console.
- Truy cập Assisted Installer:
- Đăng nhập vào https://console.redhat.com/openshift/ bằng tài khoản Red Hat.
- Điều hướng đến phần "Assisted Installer Clusters" hoặc "Datacenter" -> "Create cluster" -> "Datacenter" -> "Assisted Installer".
- Tạo Cụm Mới:
- Nhấn "Create Cluster".
- Nhập "Cluster name" và "Base domain".
- Chọn phiên bản OpenShift (4.17).
- Chọn tùy chọn cài đặt (ví dụ: "Install single node OpenShift (SNO)" hoặc cài đặt cụm đầy đủ). Đối với cụm đầy đủ, bạn có thể chọn tích hợp với vSphere.
- Nhấn "Next".
- Tạo Discovery ISO:
- Trên màn hình "Hosts", nhấn "Add hosts".
- Chọn "Generate Discovery ISO".
- Dán khóa SSH công khai (SSH public key) của bạn vào ô tương ứng.
- (Tùy chọn) Cấu hình proxy nếu cần.
- Nhấn "Generate Discovery ISO".
- Chờ một lát để ISO được tạo. Sau đó, nhấn "Download Discovery ISO".
- Chuẩn bị và Tạo VMs trên vSphere:
- Upload tệp Discovery ISO vừa tải về lên một Datastore trên vSphere.
- Tạo các máy ảo cần thiết trên vSphere (ít nhất 3 node cho cụm nhỏ gọn, hoặc riêng biệt control plane/worker).
- Sử dụng cấu hình tài nguyên tối thiểu (Phần III). Lưu ý: Một số hướng dẫn cũ hơn có thể đề cập 120GB disk , nhưng nên tuân theo 100GB từ tài liệu 4.17 .
- Chọn hệ điều hành là "Other Linux (64-bit)" hoặc tương tự.
- Trong cài đặt CD/DVD drive của VM, chọn "Datastore ISO File" và trỏ đến tệp Discovery ISO đã upload. Đảm bảo tùy chọn "Connect At Power On" được chọn.
- Quan trọng: Chỉnh sửa cấu hình VM (VM Options -> Advanced -> Edit Configuration), thêm tham số disk.EnableUUID với giá trị TRUE. Việc này cần làm khi VM đang tắt nguồn.
- Khởi động VMs và Host Discovery:
- Bật nguồn các máy ảo đã tạo. Chúng sẽ khởi động từ Discovery ISO.
- Quay lại giao diện Assisted Installer trên console.redhat.com. Chờ vài phút, các host sẽ tự động xuất hiện trong danh sách "Hosts" khi chúng đăng ký thành công.
- Đảm bảo số lượng host đủ và trạng thái của chúng là "Ready" hoặc tương tự.
- Nếu cài đặt cụm đầy đủ (không phải SNO), bạn có thể cần gán vai trò (Control plane/Worker) cho từng host. Đối với cụm nhỏ gọn (3 node), chúng sẽ tự động được gán cả hai vai trò.
- Nhấn "Next".
- Cấu hình Lưu trữ (Storage):
- Giao diện sẽ hiển thị các đĩa được phát hiện trên các host. Xác nhận đĩa sẽ được sử dụng để cài đặt (thường là đĩa duy nhất bạn đã cấp phát). Lưu ý rằng đĩa này sẽ bị xóa dữ liệu.
- Nhấn "Next".
- Cấu hình Mạng (Networking):
- Chọn Subnet mạng phù hợp từ danh sách được phát hiện.
- Cấu hình API Virtual IP (VIP) và Ingress Virtual IP (VIP). Cung cấp các địa chỉ IP tĩnh đã chuẩn bị trước cho các VIP này.
- (Tùy chọn) Cấu hình các tùy chọn mạng nâng cao khác nếu cần.
- Nhấn "Next".
- Xem lại và Bắt đầu Cài đặt:
- Kiểm tra lại tất cả các cấu hình đã chọn (tên cụm, phiên bản, hosts, lưu trữ, mạng).
- Nhấn "Install cluster".
- Theo dõi Tiến trình Cài đặt:
- Giao diện Assisted Installer sẽ hiển thị tiến trình cài đặt chi tiết cho từng giai đoạn và từng host. Quá trình này có thể mất một khoảng thời gian đáng kể.
- Hoàn tất và Truy cập Cụm:
- Khi cài đặt hoàn tất, giao diện sẽ thông báo thành công và cung cấp các thông tin cần thiết.
- Tải về tệp kubeconfig.
- Lấy thông tin đăng nhập kubeadmin (tên người dùng và mật khẩu).
- Sử dụng oc CLI với tệp kubeconfig vừa tải về để bắt đầu tương tác với cụm mới của bạn.
- Đăng nhập vào Web Console bằng thông tin kubeadmin.
- Thực hiện các bước cấu hình sau cài đặt như thiết lập Identity Provider.
IX. Kết luận
Việc cài đặt OpenShift Container Platform 4.17 trên VMware vSphere đòi hỏi sự chuẩn bị kỹ lưỡng và tuân thủ các yêu cầu tối thiểu được quy định bởi Red Hat. Báo cáo này đã tổng hợp các điều kiện tiên quyết cốt lõi dựa trên tài liệu chính thức cho phiên bản 4.17, bao gồm phiên bản môi trường vSphere tương thích (7.0U2+/8.0U1+, VM HW v15+, CPU x86-64-v2), tài nguyên tối thiểu cho các loại nút khác nhau (với sự nhấn mạnh vào IOPS và độ trễ lưu trữ cho control plane), cấu hình mạng chi tiết (đặc biệt là VIPs và DNS), và các yếu tố thiết yếu khác như quyền hạn vCenter và pull secret.
Báo cáo cũng đã cung cấp hướng dẫn chi tiết từng bước cho ba phương pháp cài đặt phổ biến: Installer-Provisioned Infrastructure (IPI), User-Provisioned Infrastructure (UPI), và Assisted Installer. Việc lựa chọn phương pháp phụ thuộc vào yêu cầu về mức độ tự động hóa, khả năng tùy chỉnh và môi trường mạng cụ thể.
Việc đảm bảo môi trường đáp ứng chính xác các yêu cầu này, đặc biệt là về phiên bản phần mềm, hiệu năng lưu trữ (IOPS/latency), cấu hình DNS và quyền hạn vCenter, là cực kỳ quan trọng để tránh các sự cố phổ biến trong quá trình cài đặt và đảm bảo sự ổn định lâu dài của cụm. Mặc dù các yêu cầu tối thiểu cung cấp điểm khởi đầu, việc lập kế hoạch dung lượng cho môi trường sản xuất phải luôn tính đến nhu cầu tài nguyên của các ứng dụng sẽ được triển khai. Tham khảo tài liệu OCP 4.17 chính thức là điều cần thiết cho mọi tình huống cài đặt.