Tìm kiếm trang web

Cách Cài Đặt Minikube trên Ubuntu 24.04|22.04|20.04


Bạn đã sẵn sàng khám phá sức mạnh của Kubernetes chưa? Trong hướng dẫn từng bước này, chúng tôi sẽ chỉ bạn cách cài đặt Minikube trên hệ thống Ubuntu Linux với hypervisor cơ bản là Libvirt (KVM) hoặc VirtualBox. Chúng ta sẽ bắt đầu với một giới thiệu cơ bản về Minikube, sau đó đi sâu vào việc cài đặt thực tế Minikube và cách bắt đầu sử dụng nó.

Minikube là một công cụ mã nguồn mở được phát triển để cho phép các nhà phát triển và quản trị viên hệ thống chạy một cụm Kubernetes duy nhất trên máy tính cục bộ của họ. Minikube khởi động một cụm Kubernetes một nút tại chỗ với mức sử dụng tài nguyên nhỏ. Điều này lý tưởng cho các thử nghiệm phát triển và mục đích POC.

Sổ Tay Ubuntu Desktop Tối Thượng

Làm chủ Ubuntu như một chuyên gia - từ tùy chỉnh giao diện đẹp mắt đến tự động hóa terminal mạnh mẽ. Hoàn hảo cho các nhà phát triển, quản trị hệ thống và người dùng cao cấp muốn kiểm soát hoàn toàn không gian làm việc của mình.

Đối với CentOS, hãy xem: Cài đặt Minikube trên CentOS 7/8 với KVM.

Tóm lại, Minikube đóng gói và cấu hình một máy ảo Linux, sau đó cài đặt Docker và tất cả các thành phần của Kubernetes vào đó.

Minikube hỗ trợ các tính năng của Kubernetes như:

  • DNS
  • NodePorts
  • ConfigMaps và Secrets
  • Bảng điều khiển
  • Trình chạy container: Docker, CRI-O và containerd
  • Kích hoạt CNI (Giao diện Mạng Container)
  • Lối vào
  • PersistentVolumes loại hostPath

Hãy bắt đầu cài đặt Minikube trên Ubuntu Linux.

Cài đặt KVM hoặc Hypervisor VirtualBox

Chạy các lệnh sau để cập nhật tất cả các gói hệ thống lên phiên bản mới nhất:

sudo apt update && sudo apt upgrade -y

Nếu cần khởi động lại sau khi nâng cấp, hãy thực hiện quá trình này.

[ -f /var/run/reboot-required ] && sudo reboot -f

Đối với người dùng VirtualBox, cài đặt VirtualBox bằng:

  • Cài đặt VirtualBox trên Ubuntu

Người dùng KVM Hypervisor

Đối với những ai quan tâm đến việc sử dụng hypervisor KVM, hãy tham khảo hướng dẫn của chúng tôi về cách cài đặt KVM trên CentOS/Ubuntu/Debian

Sau đó làm theo hướng dẫn Cách chạy Minikube trên KVM thay vào đó.

Tải xuống và Cấu hình Minikube trên Ubuntu

Bạn cần tải xuống tệp nhị phân minikube. Tôi sẽ đặt tệp nhị phân vào thư mục /usr/local/bin vì thư mục này nằm trong ` PATH.

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

Xác nhận phiên bản đã cài đặt

$ minikube version
minikube version: v1.33.1
commit: 5883c09216182566a63dff4c326a6fc9ed2982ff

Chúng ta cần kubectl, một công cụ dòng lệnh được sử dụng để triển khai và quản lý các ứng dụng trên Kubernetes:

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

Làm cho tệp nhị phân kubectl có thể thực thi.

chmod +x ./kubectl

Di chuyển tệp nhị phân vào PATH của bạn:

sudo mv ./kubectl /usr/local/bin/kubectl

Kiểm tra phiên bản:

$ kubectl version -o json  --client
{
  "clientVersion": {
    "major": "1",
    "minor": "30",
    "gitVersion": "v1.30.2",
    "gitCommit": "39683505b630ff2121012f3c5b16215a1449d5ed",
    "gitTreeState": "clean",
    "buildDate": "2024-06-11T20:29:44Z",
    "goVersion": "go1.22.4",
    "compiler": "gc",
    "platform": "linux/amd64"
  },
  "kustomizeVersion": "v5.0.4-0.20230601165947-6ce0bf390ce3"
}

Khởi động minikube trên Ubuntu

Bây giờ các thành phần đã được cài đặt, bạn có thể khởi động minikube. Hình ảnh VM sẽ được tải xuống và cấu hình cho cụm Kubernetes một nút.

  • Minikube với trình điều khiển KVM
minikube start --driver=kvm2
  • Với trình điều khiển VirtualBox
minikube start --driver=virtualbox

Ví dụ kết quả đầu ra từ các lệnh thực thi.

...................................
* Using the kvm2 driver based on user configuration
*   https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* Downloading driver docker-machine-driver-kvm2:
    > docker-machine-driver-kvm2-...:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > docker-machine-driver-kvm2-...:  13.46 MiB / 13.46 MiB  100.00% ? p/s 100
* Downloading VM boot image ...
    > minikube-v1.33.1-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.33.1-amd64.iso:  314.16 MiB / 314.16 MiB  100.00% 37.68 MiB p
* Starting "minikube" primary control-plane node in "minikube" cluster
* Downloading Kubernetes v1.30.0 preload ...
    > preloaded-images-k8s-v18-v1...:  342.90 MiB / 342.90 MiB  100.00% 38.75 M
* Creating kvm2 VM (CPUs=2, Memory=2200MB, Disk=20000MB) ...
* Preparing Kubernetes v1.30.0 on Docker 26.0.2 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* 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

Chờ cho quá trình tải xuống và cài đặt hoàn tất, sau đó xác nhận rằng mọi thứ đang hoạt động bình thường.

Để thiết lập trình điều khiển Minikube mặc định, hãy sử dụng:

# VirtualBox
minikube config set driver virtualbox

# KVM
minikube config set driver kvm

Các thao tác cơ bản của Minikube

Để kiểm tra trạng thái cụm, chạy:

$ kubectl cluster-info

Kubernetes master is running at https://192.168.39.117:8443
KubeDNS is running at https://192.168.39.117:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Lưu ý rằng tệp cấu hình Minikube nằm trong ~/.minikube/machines/minikube/config.json

Để xem cấu hình, sử dụng:

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Sat, 13 Jul 2024 15:29:47 UTC
        provider: minikube.sigs.k8s.io
        version: v1.33.1
      name: cluster_info
    server: https://192.168.39.249:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Sat, 13 Jul 2024 15:29:47 UTC
        provider: minikube.sigs.k8s.io
        version: v1.33.1
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/profiles/minikube/client.crt
    client-key: /root/.minikube/profiles/minikube/client.key

Để kiểm tra các nút đang chạy:

$ kubectl get nodes
NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   5m29s   v1.30.0

Truy cập VM minikube bằng ssh:

$ minikube ssh

                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ sudo su -

Để dừng một cụm Kubernetes cục bộ đang chạy, hãy chạy:

$ minikube stop

Để xóa một cụm Kubernetes cục bộ, hãy sử dụng:

$ minikube delete

Kubernetes đi kèm với một bảng điều khiển web mà

$ minikube addons list
...
|-----------------------------|----------|--------------|--------------------------------|
|         ADDON NAME          | PROFILE  |    STATUS    |           MAINTAINER           |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador                  | minikube | disabled     | 3rd party (Ambassador)         |
| auto-pause                  | minikube | disabled     | minikube                       |
| 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     | minikube                       |
| headlamp                    | minikube | disabled     | 3rd party (kinvolk.io)         |
| helm-tiller                 | minikube | disabled     | 3rd party (Helm)               |
| inaccel                     | minikube | disabled     | 3rd party (InAccel             |
|                             |          |              | [[email ])            |
| ingress                     | minikube | disabled     | Kubernetes                     |
| ingress-dns                 | minikube | disabled     | minikube                       |
| inspektor-gadget            | minikube | disabled     | 3rd party                      |
|                             |          |              | (inspektor-gadget.io)          |
| istio                       | minikube | disabled     | 3rd party (Istio)              |
| istio-provisioner           | minikube | disabled     | 3rd party (Istio)              |
| kong                        | minikube | disabled     | 3rd party (Kong HQ)            |
| kubeflow                    | minikube | disabled     | 3rd party                      |
| kubevirt                    | minikube | disabled     | 3rd party (KubeVirt)           |
| logviewer                   | minikube | disabled     | 3rd party (unknown)            |
| metallb                     | minikube | disabled     | 3rd party (MetalLB)            |
| metrics-server              | minikube | disabled     | Kubernetes                     |
| nvidia-device-plugin        | minikube | disabled     | 3rd party (NVIDIA)             |
| nvidia-driver-installer     | minikube | disabled     | 3rd party (Nvidia)             |
| 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     | minikube                       |
| registry-aliases            | minikube | disabled     | 3rd party (unknown)            |
| registry-creds              | minikube | disabled     | 3rd party (UPMC Enterprises)   |
| storage-provisioner         | minikube | enabled ✅   | minikube                       |
| storage-provisioner-gluster | minikube | disabled     | 3rd party (Gluster)            |
| storage-provisioner-rancher | minikube | disabled     | 3rd party (Rancher)            |
| volumesnapshots             | minikube | disabled     | Kubernetes                     |
| yakd                        | minikube | disabled     | 3rd party (marcnuri.com)       |
|-----------------------------|----------|--------------|--------------------------------|

Để kích hoạt một mô-đun, sử dụng lệnh:

minikube addons enable <module>

Ví dụ :

$ minikube addons enable portainer
! portainer is a 3rd party addon and is not maintained or verified by minikube maintainers, enable at your own risk.
! portainer does not currently have an associated maintainer.
  - Using image docker.io/portainer/portainer-ce:2.15.1
* The 'portainer' addon is enabled

Để mở trực tiếp trên trình duyệt mặc định của bạn, hãy sử dụng:

$ minikube dashboard

Để lấy URL của bảng điều khiển

$ minikube dashboard --url
http://192.168.39.117:30000

Truy cập Bảng điều khiển Kubernetes bằng cách mở URL trên trình duyệt yêu thích của bạn. Để tìm hiểu thêm, hãy xem:

  • Series Hello Minikube: https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/
  • Hướng dẫn Minikube cho người mới bắt đầu có sẵn tại: https://kubernetes.io/docs/getting-started-guides/minikube/

Thêm hướng dẫn về Kubernetes:

  • Lên lịch Pod trên các nút Control plane (Master) của Kubernetes
  • Tham gia một nút Worker Kubernetes mới vào Cluster hiện có
  • Triển khai cụm Kubernetes trên CentOS với Ansible và Calico CNI
  • Triển khai Metrics Server lên cụm Kubernetes
  • Kéo thủ công các hình ảnh container được Kubernetes kubeadm sử dụng
  • Cài đặt và Sử dụng Helm 3 trên cụm Kubernetes