Tạo cụm Kubernetes bằng Minikube
Mục tiêu của hướng dẫn này:
- Tìm hiểu cụm Kubernetes là gì?
- Tìm hiểu Minikube là gì?
- Tạo một cụm Kubernetes bằng Minikube.
Kubernetes Cluster
Kubernetes điều phối một cụm máy tính có tính khả dụng cao được kết nối để hoạt động như một đơn vị duy nhất.
Các tính năng trừu tượng trong Kubernetes cho phép bạn triển khai các ứng dụng được chứa trong một cụm mà không cần ràng buộc chúng cụ thể với từng máy riêng lẻ.
Để sử dụng mô hình triển khai mới này, các ứng dụng cần được đóng gói theo cách tách chúng khỏi các máy chủ riêng lẻ: chúng cần được đóng gói.
Các ứng dụng được chứa trong container linh hoạt hơn và khả dụng hơn so với các mô hình triển khai trước đây, trong đó các ứng dụng được cài đặt trực tiếp vào các máy cụ thể dưới dạng các gói được tích hợp sâu vào máy chủ.
Kubernetes tự động hóa việc phân phối và lập lịch các vùng chứa ứng dụng trên một cụm theo cách hiệu quả hơn. Kubernetes là một nền tảng mã nguồn mở và đã sẵn sàng sản xuất.
Một cụm Kubernetes bao gồm hai loại tài nguyên:
- Control plane điều phối cụm.
- Các node là các worker chạy ứng dụng.
Sơ đồ Kubernetes Cluster
Control Plane chịu trách nhiệm quản lý cụm. Control Plane điều phối tất cả các hoạt động trong cụm của bạn, chẳng hạn như lập lịch ứng dụng, duy trì trạng thái mong muốn của ứng dụng, mở rộng ứng dụng và tung ra các bản cập nhật mới.
Node là một máy ảo hoặc một máy tính vật lý hoạt động như một worker trong một cụm Kubernetes. Mỗi node có một Kubelet, đây là một tác nhân để quản lý node và giao tiếp với Control Plane Kubernetes. Node cũng phải có các công cụ để xử lý các hoạt động của container, chẳng hạn như containerd hoặc Docker. Một cụm Kubernetes xử lý lưu lượng sản xuất phải có tối thiểu ba node.
Control Plane quản lý cụm và các node được sử dụng để lưu trữ các ứng dụng đang chạy.
Khi bạn triển khai ứng dụng trên Kubernetes, bạn yêu cầu Control Plane khởi động các container ứng dụng. Control Plane lập lịch trình cho các thùng chứa chạy trên các node của cụm. Các node giao tiếp với Control Plane bằng cách sử dụng Kubernetes API mà Control Plane đưa ra. Người dùng cuối cũng có thể sử dụng trực tiếp Kubernetes API để tương tác với cụm.
Một cụm Kubernetes có thể được triển khai trên máy vật lý hoặc máy ảo. Để bắt đầu triển khai Kubernetes, bạn có thể sử dụng Minikube. Minikube là một triển khai Kubernetes nhẹ tạo một máy ảo trên máy cục bộ của bạn và triển khai một cụm đơn giản chỉ chứa một node.
Minikube có sẵn cho các hệ thống Linux, macOS và Windows. Minikube CLI cung cấp các thao tác khởi động cơ bản để làm việc với cụm của bạn, bao gồm bắt đầu, dừng, xem trạng thái và xóa.
Cài đặt minikube
Linux
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên Linux không, chạy lệnh sau và chắc chắn rằng kết quả trả về là non-empty:
grep -E --color 'vmx|svm' /proc/cpuinfo
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• KVM, sử dụng QEMU
• VirtualBox
Ghi chú: Minikube cũng hỗ trợ tùy chọn
--vm-driver=none
để chạy các thành phần của Kubernetes ngay trên máy chủ chứ không phải trong một VM. Sử dụng driver này yêu cầu Docker và môi trường Linux chứ không phải một Hypervisor. Bạn nên sử dụng cài đặt apt của docker từ Docker khi sử dụng non driver. Cài đặt snap của docker không hoạt động với minikube.
Cài đặt Minikube sử dụng package
Có các gói thử nghiệm cho Minikube có sẵn; bạn có thể tìm thấy các gói Linux (AMD64) từ trang phát hành của Minikube trên Github.
Sử dụng các package tool của bản phân phối Linux của bạn để cài đặt package phù hợp.
Cài đặt Minikube thông qua tải xuống trực tiếp
Nếu bạn không cài đặt qua package, bạn có thể tải xuống bản binary và sử dụng.
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
&& chmod +x minikube
Đây là một cách dễ dàng để thêm Minikube vào biến môi trường path của bạn:
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/
Cài đặt Minikube sử dụng Homebrew
Một lựa chọn khác là bạn có thể cài đặt Minikube bằng cách sử dụng Linux Homebrew:
brew install minikube
MacOS
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên macOS không, chạy lệnh sau trên terminal:
sysctl -a | grep -E --color 'machdep.cpu.features|VMX'
Nếu bạn thấy VMX
ở kết quả trả về (có màu), thì VT-x đã được hỗ trợ.
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• HyperKit
• VirtualBox
• VMware Fusion
Cài đặt Minikube
Cách đơn giản nhất để cài đặt Minikube trên macOS là sử dụng Homebrew:
brew install minikube
Bạn cũng có thể cài đặt trên macOS bằng việc tải xuống bản binary:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
&& chmod +x minikube
Đây là một cách dễ dàng để thêm Minikube vào biến môi trường path của bạn:
sudo mv minikube /usr/local/bin
Windows
Để kiểm tra xem việc ảo hóa (virtualization) có được hỗ trợ trên Windows 8 và các phiên bản Windows cao hơn không, chạy lệnh sau trên terminal của Windows hoặc command promt.
systeminfo
Nếu bạn thấy những thông tin sau, ảo hóa được hỗ trợ trên Windows.
Hyper-V Requirements: VM Monitor Mode Extensions: Yes
Virtualization Enabled In Firmware: Yes
Second Level Address Translation: Yes
Data Execution Prevention Available: Yes
Nếu bạn thấy thông tin sau, thì hệ thống đã được cài đặt Hypervisor và bạn có thể bỏ qua bước tiếp theo.
Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
Cài đặt kubectl
Đảm bảo bạn đã cài đặt kubectl. Bạn có thể cài đặt kubectl theo hướng dẫn sau tại Install and Set Up kubectl.
Cài đặt Hypervisor
Nếu bạn chưa cài đặt Hypervisor, hãy cài đặt một trong những phần mềm sau đây:
• Hyper-V
• VirtualBox
Ghi chú: Hyper-V có thể chạy trên 3 phiên bản khác nhau của Windows 10: Windows 10 Enterprise, Windows 10 Professional, và Windows 10 Education.
Cài đặt Minikube sử dụng Chocolatey
Cách đơn giản nhất để cài đặt Minikube trên Windows là sử dụng Chocolatey (chạy với quyền admin):
choco install minikube
Sau khi Minikube hoàn tất việc cài đặt, hãy đóng CLI hiện tại và khởi động lại. Minikube sẽ được tự động thêm vào biến môi trường path của bạn.
Cài đặt Minikube sử dụng gói cài đặt thực thi
Để cài đặt Minikube thủ công trên Windows sử dụng Windows Installer, tải về minikube-installer.exe
và chạy bản cài đặt đó.
Cài đặt Minikube thông qua tải về trực tiếp
Để cài đặt Minikube thủ công trên Windows, tải về minikube-windows-amd64
, đổi tên nó thành minikube.exe
, và thêm nó vào biến môi trường path
Dọn dẹp local state
Nếu bạn đã cài Minikube trước đó, và chạy:
minikube start
và tiếp đó minikube start
trả về lỗi:
machine does not exist
thì tiếp theo bạn cần xóa bỏ local state của minikube:
minikube delete
Tạo Kubernetes Cluster bằng Minikube
Chúng ta đã cài đặt Minikube ở bước trên, để kiểm tra phiên bản của Minikube bạn chạy lệnh sau:
minikube version
Kết quả trông sẽ như thế này:
minikube version: v1.8.1
Khởi động cụm bằng lệnh sau:
minikube start
Tuyệt vời! Bây giờ bạn có một cụm Kubernetes đang chạy. Minikube đã khởi động một máy ảo cho bạn và một cụm Kubernetes hiện đang chạy trong máy ảo đó.
Tiếp theo bạn hãy kiểm tra phiên bản của kubectl
bằng lệnh sau:
kubectl version
Kết quả trông sẽ như thế này:
Client Version: ...
Server Version: ...
Bây giờ chúng ta sẽ xem thông tin cụm bằng lệnh sau:
kubectl cluster-info
Kết quả trông sẽ như thế này:
Kubernetes master is running at https://...
Để xem node trong cụm, bạn chạy lệnh sau:
kubectl get nodes