Cách thiết lập cụm Kubernetes bằng Minicube trên Debian 11

theanh

Administrator
Nhân viên
Minikube là một công cụ mã nguồn mở miễn phí đi kèm với một bộ tiện ích bổ sung tích hợp giúp bạn thiết lập cụm Kubernetes trong hệ thống cục bộ của mình. Lệnh 'minicube' cung cấp một số lệnh phụ cho phép bạn quản lý cụm Kubernetes thông qua giao diện dòng lệnh. Minikube là công cụ đa nền tảng và hỗ trợ nhiều hệ điều hành, bao gồm Linux, macOS và Windows. Nó có thể được triển khai dưới dạng VM, container hoặc trên máy chủ trần.

Hướng dẫn này sẽ hướng dẫn cách cài đặt Minikube trên Debian 11.

Yêu cầu​

  • Debian 11 mới đã được cài đặt trên hệ thống của bạn.
  • Mật khẩu gốc đã được thiết lập trên hệ thống của bạn.

Cài đặt Docker​

Trước khi cài đặt Minikube, bạn phải cài đặt gói Docker trên máy chủ của mình. Nếu chưa cài đặt, bạn có thể cài đặt bằng lệnh sau.
Mã:
apt install docker.io -y
Sau khi cài đặt Docker, bạn có thể xác minh phiên bản Docker bằng lệnh sau lệnh.
Mã:
docker --version
Bạn sẽ thấy kết quả sau.
Mã:
Docker version 20.10.5+dfsg1, build 55c4c88

Cài đặt Kubectl​

Kubectl là một công cụ để triển khai và quản lý các ứng dụng trên Kubernetes. Theo mặc định, Kubectl không có trong kho lưu trữ mặc định của Debian 11. Vì vậy, bạn sẽ cần cài đặt nó bằng Snap.

Đầu tiên, cài đặt gói Snap bằng lệnh sau.
Mã:
apt install snapd -y
Tiếp theo, tạo liên kết tượng trưng cho gói Snap bằng lệnh sau.
Mã:
ln -s /var/lib/snapd/snap /snap
Tiếp theo, thêm đường dẫn Snap vào hệ thống của bạn hồ sơ.
Mã:
echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | tee -a /etc/profile.d/snap.sh
Tiếp theo, khởi động và kích hoạt dịch vụ Snap bằng lệnh sau.
Mã:
systemctl enable --now snapd.service snapd.socket
Tiếp theo, cài đặt gói kubectl bằng lệnh sau lệnh.
Mã:
snap install kubectl --classic
Tiếp theo, tạo liên kết tượng trưng của gói kubectl bằng lệnh sau.
Mã:
ln -s /snap/kubectl/current/kubectl /usr/bin/
Bây giờ, hãy xác minh phiên bản kubectl bằng lệnh sau lệnh.
Mã:
kubectl version -o yaml
Bạn sẽ thấy đầu ra sau:
Mã:
clientVersion: buildDate: "2022-12-09T16:23:44Z" compiler: gc gitCommit: b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d gitTreeState: clean gitVersion: v1.26.0 goVersion: go1.19.4 major: "1" minor: "26" platform: linux/amd64
kustomizeVersion: v4.5.7

Cài đặt Minikube​

Theo mặc định, gói Minikube không được bao gồm trong kho lưu trữ mặc định của Debian. Vì vậy, bạn sẽ cần tải xuống tệp nhị phân Minikube vào hệ thống của mình.

Đầu tiên, tải xuống Minikube bằng lệnh sau.
Mã:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
Tiếp theo, sao chép tệp nhị phân Minikube vào đường dẫn hệ thống.
Mã:
cp minikube /usr/local/bin/
Tiếp theo, đặt quyền thực thi bằng lệnh sau lệnh.
Mã:
chmod +x /usr/local/bin/minikube
Bây giờ, hãy xác minh phiên bản Minikube bằng lệnh sau.
Mã:
minikube version
Bạn sẽ nhận được thông báo sau đầu ra.
Mã:
minikube version: v1.28.0
commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Khởi động Minikube​

Lúc này, tất cả các gói cần thiết đã được cài đặt. Bây giờ bạn có thể khởi động Minikube bằng lệnh sau:
Mã:
minikube start --force
Lệnh này sẽ tải xuống hình ảnh docker và cấu hình cụm Kubernetes như hiển thị bên dưới:
Mã:
???? minikube v1.28.0 on Debian 11.6 (kvm/amd64)
? minikube skips various validations when --force is supplied; this may lead to unexpected behavior
? Automatically selected the docker driver. Other choices: none, ssh
???? The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
???? If you are running minikube within a VM, consider using --driver=none:
???? https://minikube.sigs.k8s.io/docs/reference/drivers/none/
???? Using Docker driver with root privileges
???? Starting control plane node minikube in cluster minikube
???? Pulling base image ...
???? Downloading Kubernetes v1.25.3 preload ... > preloaded-images-k8s-v18-v1...: 385.44 MiB / 385.44 MiB 100.00% 37.08 M > gcr.io/k8s-minikube/kicbase: 386.27 MiB / 386.27 MiB 100.00% 27.51 MiB > gcr.io/k8s-minikube/kicbase: 0 B [________________________] ?% ? p/s 10s
???? Creating docker container (CPUs=2, Memory=2200MB) ...
???? Preparing Kubernetes v1.25.3 on Docker 20.10.20 ... ? Generating certificates and keys ... ? Booting up control plane ... ? Configuring RBAC rules ...
???? Verifying Kubernetes components... ? Using image gcr.io/k8s-minikube/storage-provisioner:v5
???? Enabled addons: default-storageclass, storage-provisioner
???? Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Bây giờ bạn có thể kiểm tra trạng thái cụm bằng lệnh sau:
Mã:
kubectl cluster-info
Bạn sẽ thấy thông báo sau đầu ra:
Mã:
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Để kiểm tra các nút đang chạy, hãy chạy lệnh sau lệnh:
Mã:
kubectl get nodes
Đầu ra:
Mã:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 67s v1.25.3
Bạn cũng có thể truy cập vào vùng chứa Minikube bằng lệnh sau lệnh:
Mã:
minikube ssh
Đầu ra:
Mã:
docker@minikube:~$
Bây giờ, thoát khỏi shell container bằng lệnh sau lệnh:
Mã:
$exit
Bạn có thể dừng và xóa cụm Kubernetes bất cứ lúc nào bằng lệnh sau:
Mã:
minikube stop
minikube delete
Bạn có thể kiểm tra trạng thái của Minikube bằng lệnh sau lệnh:
Mã:
minikube status
Đầu ra:
Mã:
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Bảng điều khiển Minikube Kubernetes​

Theo mặc định, Minikube cung cấp bảng điều khiển web có thể được sử dụng để quản lý cụm của bạn.

Bạn có thể liệt kê tất cả các tiện ích bổ sung minikube bằng lệnh sau:
Mã:
minikube addons list
Bạn sẽ thấy đầu ra sau:
Mã:
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
| auto-pause | minikube | disabled | Google |
| cloud-spanner | minikube | disabled | Google |
| csi-hostpath-driver | minikube | disabled | Kubernetes |
| dashboard | minikube | disabled | Kubernetes |
| default-storageclass | minikube | enabled ? | Kubernetes |
| efk | minikube | disabled | 3rd party (Elastic) |
| freshpod | minikube | disabled | Google |
| gcp-auth | minikube | disabled | Google |
| gvisor | minikube | disabled | Google |
| headlamp | minikube | disabled | 3rd party (kinvolk.io) |
| helm-tiller | minikube | disabled | 3rd party (Helm) |
| inaccel | minikube | disabled | 3rd party (InAccel |
| | | | [[emailprotected]]) |
| ingress | minikube | disabled | Kubernetes |
| ingress-dns | minikube | disabled | Google |
| istio | minikube | disabled | 3rd party (Istio) |
| istio-provisioner | minikube | disabled | 3rd party (Istio) |
| kong | minikube | disabled | 3rd party (Kong HQ) |
| kubevirt | minikube | disabled | 3rd party (KubeVirt) |
| logviewer | minikube | disabled | 3rd party (unknown) |
| metallb | minikube | disabled | 3rd party (MetalLB) |
| metrics-server | minikube | disabled | Kubernetes |
| nvidia-driver-installer | minikube | disabled | Google |
| nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
| olm | minikube | disabled | 3rd party (Operator Framework) |
| pod-security-policy | minikube | disabled | 3rd party (unknown) |
| portainer | minikube | disabled | 3rd party (Portainer.io) |
| registry | minikube | disabled | Google |
| registry-aliases | minikube | disabled | 3rd party (unknown) |
| registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
| storage-provisioner | minikube | enabled ? | Google |
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
| volumesnapshots | minikube | disabled | Kubernetes |
|-----------------------------|----------|--------------|--------------------------------|
Tiếp theo, hãy liệt kê tất cả các hình ảnh chứa đang chạy trong cụm bằng lệnh sau:
Mã:
kubectl get pods --all-namespaces
Bạn sẽ thấy thông báo sau đầu ra:
Mã:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-565d847f94-9ttdq 1/1 Running 0 2m47s
kube-system etcd-minikube 1/1 Running 0 3m
kube-system kube-apiserver-minikube 1/1 Running 0 3m1s
kube-system kube-controller-manager-minikube 1/1 Running 0 3m
kube-system kube-proxy-mr8sn 1/1 Running 0 2m47s
kube-system kube-scheduler-minikube 1/1 Running 0 3m
kube-system storage-provisioner 1/1 Running 1 (2m16s ago) 2m59s
Bây giờ, hãy chạy lệnh sau để lấy URL của bảng điều khiển Kubernetes:
Mã:
minikube dashboard --url
Bạn sẽ thấy thông tin sau đầu ra:
Mã:
???? Enabling dashboard ... ? Using image docker.io/kubernetesui/metrics-scraper:v1.0.8 ? Using image docker.io/kubernetesui/dashboard:v2.7.0
???? Some dashboard features require the metrics-server addon. To enable all features please run:	minikube addons enable metrics-server
???? Verifying dashboard health ...
???? Launching proxy ...
???? Verifying proxy health ...
http://127.0.0.1:45627/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Tại thời điểm này, bảng điều khiển Minikube đã được cài đặt và chạy trên máy chủ cục bộ trên cổng 45627. Tuy nhiên, bạn chỉ có thể truy cập bảng điều khiển này từ máy cục bộ. Nếu bạn muốn truy cập từ một máy bên ngoài, hãy chạy lệnh sau.
Mã:
kubectl proxy --address='0.0.0.0' --disable-filter=true
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL /. Bạn sẽ được chuyển hướng đến bảng điều khiển Kubernetes như hiển thị ở trang sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E


Xin chúc mừng! bạn đã cài đặt thành công Minikube trên Debian 11. Bây giờ bạn có thể dễ dàng quản lý cụm Kubernetes của mình thông qua trình duyệt web. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên