Поиск по сайту:

Как настроить кластер Kubernetes с помощью Minicube в Debian 11


На этой странице

  1. Требования
  2. Установить Docker
  3. Установить Кубектл
  4. Установить Minikube
  5. Запустить Minikube
  6. Доступ к панели управления 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 через веб-браузер. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.