Как настроить кластер Kubernetes с помощью Minicube в Debian 11
На этой странице
- Требования
- Установить Docker
- Установить Кубектл
- Установить Minikube
- Запустить Minikube
- Доступ к панели управления Minikube Kubernetes
Minikube — это бесплатный инструмент с открытым исходным кодом, который поставляется с набором встроенных надстроек, которые помогут вам настроить кластер Kubernetes в вашей локальной системе. Команда minicube предоставляет несколько подкоманд, позволяющих управлять кластером Kubernetes через интерфейс командной строки. Minikube является кроссплатформенным и поддерживает множество операционных систем, включая Linux, macOS и Windows. Его можно развернуть как виртуальную машину, контейнер или на «голом железе».
Из этого туториала вы узнаете, как установить Minikube на Debian 11.
Требования
- В вашей системе установлен свежий Debian 11.
- В вашей системе установлен пароль root.
Установить Докер
Перед установкой Minikube на вашем сервере должен быть установлен пакет Docker. Если он не установлен, вы можете установить его с помощью следующей команды.
apt install docker.io -y
После установки Docker вы можете проверить версию Docker с помощью следующей команды.
docker --version
Вы должны увидеть следующий вывод.
Docker version 20.10.5+dfsg1, build 55c4c88
Установить Кубектл
Kubectl — это инструмент для развертывания и управления приложениями в Kubernetes. По умолчанию Kubectl недоступен в стандартном репозитории Debian 11. Итак, вам нужно будет установить его с помощью Snap.
Сначала установите пакет Snap с помощью следующей команды.
apt install snapd -y
Затем создайте символическую ссылку для пакета Snap, используя следующую команду.
ln -s /var/lib/snapd/snap /snap
Затем добавьте путь Snap в свой системный профиль.
echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | tee -a /etc/profile.d/snap.sh
Затем запустите и включите службу Snap с помощью следующей команды.
systemctl enable --now snapd.service snapd.socket
Затем установите пакет kubectl с помощью следующей команды.
snap install kubectl --classic
Затем создайте символическую ссылку пакета kubectl с помощью следующей команды.
ln -s /snap/kubectl/current/kubectl /usr/bin/
Теперь проверьте версию kubectl с помощью следующей команды.
kubectl version -o yaml
Вы должны увидеть следующий вывод:
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
Установить Миникуб
По умолчанию пакет Minikube не включен в репозиторий Debian по умолчанию. Поэтому вам нужно будет загрузить бинарный файл Minikube в свою систему.
Сначала загрузите Minikube с помощью следующей команды.
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
Затем скопируйте двоичный файл Minikube в системный путь.
cp minikube /usr/local/bin/
Затем установите права на исполняемый файл с помощью следующей команды.
chmod +x /usr/local/bin/minikube
Теперь проверьте версию Minikube с помощью следующей команды.
minikube version
Вы получите следующий вывод.
minikube version: v1.28.0 commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f
Как только вы закончите, вы можете перейти к следующему шагу.
Запустить Миникуб
На этом этапе все необходимые пакеты установлены. Теперь вы можете запустить Minikube с помощью следующей команды:
minikube start --force
Это загрузит образ докера и настроит кластер Kubernetes, как показано ниже:
???? 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
Теперь вы можете проверить состояние кластера с помощью следующей команды:
kubectl cluster-info
Вы должны увидеть следующий вывод:
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
Чтобы проверить работающие узлы, выполните следующую команду:
kubectl get nodes
Вывод:
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 67s v1.25.3
Вы также можете получить доступ к контейнеру Minikube с помощью следующей команды:
minikube ssh
Вывод:
:~$
Теперь выйдите из оболочки контейнера, используя следующую команду:
$exit
Вы можете остановить и удалить кластер Kubernetes в любое время с помощью следующей команды:
minikube stop
minikube delete
Вы можете проверить статус Minikube с помощью следующей команды:
minikube status
Вывод:
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
Как только вы закончите, вы можете перейти к следующему шагу.
Доступ к панели управления Minikube Kubernetes
По умолчанию Minikube предоставляет веб-панель, которую можно использовать для управления кластером.
Вы можете перечислить все дополнения minikube с помощью следующей команды:
minikube addons list
Вы должны увидеть следующий вывод:
|-----------------------------|----------|--------------|--------------------------------| | 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 | | | | | []) | | 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 | |-----------------------------|----------|--------------|--------------------------------|
Затем выведите список всех образов контейнеров, работающих в кластере, с помощью следующей команды:
kubectl get pods --all-namespaces
Вы должны увидеть следующий вывод:
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
Теперь выполните следующую команду, чтобы получить URL-адрес панели управления Kubernetes:
minikube dashboard --url
Вы должны увидеть следующий вывод:
???? 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/
На данный момент панель управления Minikube установлена и работает на локальном хосте через порт 45627. Однако вы можете получить к ней доступ только с локальной машины. Если вы хотите получить к нему доступ с внешнего компьютера, выполните следующую команду.
kubectl proxy --address='0.0.0.0' --disable-filter=true
Теперь откройте веб-браузер и введите URL-адрес http://ваш-сервер-ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/. Вы будете перенаправлены на панель инструментов Kubernetes, как показано на следующей странице:
Поздравляем! вы успешно установили Minikube на Debian 11. Теперь вы можете легко управлять своим кластером Kubernetes через веб-браузер. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.