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

Как установить Kubernetes с Minikube на Ubuntu 20.04


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

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

  1. Предпосылки
  2. Начало работы
  3. Установить Docker
  4. Установить Minikube
  5. Установить Кубектл
  6. Запустить Minikube
  7. Доступ к панели управления Kubernetes
  8. Заключение

Minikube — это инструмент с открытым исходным кодом, который помогает настроить кластер Kubernetes с одним узлом на локальном компьютере. Это упрощает запуск кластера Kubernetes с одним узлом на вашем персональном компьютере для ежедневной разработки. Он кроссплатформенный и может быть установлен на macOS, Linux и Windows.

В этом руководстве мы покажем вам, как установить Minikube на сервер Ubuntu 20.04.

Предпосылки

  • Настольная версия Ubuntu 20.04 установлена в вашей системе.
  • Минимум 4 ГБ ОЗУ и 2 или более ядер ЦП.
  • В вашей локальной системе должна быть включена аппаратная виртуализация.
  • Пароль root настраивается на сервере.

Начиная

Перед запуском рекомендуется обновить системные пакеты до последней версии. Вы можете обновить их, выполнив следующую команду:

apt-get update -y

После обновления всех пакетов установите другие зависимости, выполнив следующую команду:

apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Докер

Далее вам нужно будет установить Docker в вашу систему. Вы можете установить его, выполнив следующую команду:

apt-get install docker.io -y

После установки Docker запустите службу Docker и включите ее запуск при перезагрузке системы:

systemctl start docker
systemctl enable docker

Теперь вы можете проверить версию Docker с помощью следующей команды:

docker --version

Вы должны увидеть версию Docker в следующем выводе:

Docker version 19.03.8, build afacb8b7f0

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Миникуб

По умолчанию Minikube недоступен в стандартном репозитории Ubuntu. Поэтому вам нужно скачать бинарный пакет Minikube с официального сайта. Вы можете скачать его с помощью следующей команды:

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

После завершения загрузки скопируйте загруженный двоичный файл в системный путь с помощью следующей команды:

cp minikube-linux-amd64 /usr/local/bin/minikube

Затем предоставьте разрешение на выполнение с помощью следующей команды:

chmod 755 /usr/local/bin/minikube

Теперь вы можете проверить версию Minikube с помощью следующей команды:

minikube version

Вы должны получить следующий результат:

minikube version: v1.16.0
commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Кубектл

Далее вам нужно будет установить Kubectl и другие инструменты для управления приложениями в Kubernetes. Сначала добавьте ключ GPG с помощью следующей команды:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

Затем добавьте репозиторий kubectl с помощью следующей команды:

echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

После добавления репозитория обновите кеш репозитория и установите Kubectl, выполнив следующую команду:

apt-get update -y
apt-get install kubectl kubeadm kubectl -y

После установки всех пакетов можно переходить к следующему шагу.

Запустить Миникуб

На этом этапе все необходимые пакеты установлены. Теперь вы можете запустить Minikube с помощью следующей команды:

minikube start

Вы должны получить следующий результат:

* minikube v1.16.0 on Ubuntu 20.04 (kvm/amd64)
* Using the none driver based on user configuration
* Starting control plane node minikube in cluster minikube
* Running on localhost (CPUs=2, Memory=3936MB, Disk=100726MB) ...
* OS release is Ubuntu 20.04 LTS
* Preparing Kubernetes v1.20.0 on Docker 19.03.8 ...
  - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm: 37.40 MiB / 37.40 MiB [---------------] 100.00% 27.29 MiB p/s 1s
    > kubectl: 38.37 MiB / 38.37 MiB [---------------] 100.00% 27.60 MiB p/s 1s
    > kubelet: 108.69 MiB / 108.69 MiB [-------------] 100.00% 42.08 MiB p/s 3s
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring local host environment ...
* 
! The 'none' driver is designed for experts who need to integrate with an existing VM
* Most users should use the newer 'docker' driver instead, which does not require root!
* For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* 
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
* 
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
* 
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Verifying Kubernetes components...
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

Вы можете проверить информацию о кластере с помощью следующей команды:

kubectl cluster-info

Вы должны получить следующий результат:

Kubernetes control plane is running at https://45.58.38.77:8443
KubeDNS is running at https://45.58.38.77:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

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

Вы можете проверить конфигурацию Kubectl по умолчанию с помощью следующей команды:

kubectl config view

Вы должны увидеть следующий вывод:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    server: https://45.58.38.77:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    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

Вы можете проверить все работающие узлы с помощью следующей команды:

kubectl get nodes

Вы должны получить следующий результат:

NAME         STATUS   ROLES                  AGE     VERSION
ubunt4   Ready    control-plane,master   2m24s   v1.20.0

Чтобы проверить состояние Minikube, выполните следующую команду:

minikube status

Вы должны получить следующий результат:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
timeToStop: Nonexistent

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к панели управления Kubernetes

Minikube поставляется с множеством надстроек, которые вы можете включать или отключать в соответствии с вашими потребностями. Вы можете перечислить все дополнения с помощью следующей команды:

minikube addons list

Вы должны получить следующий результат:

|-----------------------------|----------|--------------|
|         ADDON NAME          | PROFILE  |    STATUS    |
|-----------------------------|----------|--------------|
| ambassador                  | minikube | disabled     |
| csi-hostpath-driver         | minikube | disabled     |
| dashboard                   | minikube | disabled     |
| default-storageclass        | minikube | enabled ?   |
| efk                         | minikube | disabled     |
| freshpod                    | minikube | disabled     |
| gcp-auth                    | minikube | disabled     |
| gvisor                      | minikube | disabled     |
| helm-tiller                 | minikube | disabled     |
| ingress                     | minikube | disabled     |
| ingress-dns                 | minikube | disabled     |
| istio                       | minikube | disabled     |
| istio-provisioner           | minikube | disabled     |
| kubevirt                    | minikube | disabled     |
| logviewer                   | minikube | disabled     |
| metallb                     | minikube | disabled     |
| metrics-server              | minikube | disabled     |
| nvidia-driver-installer     | minikube | disabled     |
| nvidia-gpu-device-plugin    | minikube | disabled     |
| olm                         | minikube | disabled     |
| pod-security-policy         | minikube | disabled     |
| registry                    | minikube | disabled     |
| registry-aliases            | minikube | disabled     |
| registry-creds              | minikube | disabled     |
| storage-provisioner         | minikube | enabled ?   |
| storage-provisioner-gluster | minikube | disabled     |
| volumesnapshots             | minikube | disabled     |
|-----------------------------|----------|--------------|

Затем выведите список всех образов контейнеров, работающих в кластере, с помощью следующей команды:

kubectl get pods --all-namespaces

Вы должны получить следующий результат:

NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-skf9d              1/1     Running   0          3m45s
kube-system   etcd-ubunt4                      1/1     Running   0          3m54s
kube-system   kube-apiserver-ubunt4            1/1     Running   0          3m54s
kube-system   kube-controller-manager-ubunt4   1/1     Running   0          3m54s
kube-system   kube-proxy-w8q6d                     1/1     Running   0          3m45s
kube-system   kube-scheduler-ubunt4            1/1     Running   0          3m54s
kube-system   storage-provisioner                  1/1     Running   0          3m59s

Затем включите панель мониторинга Kubernetes и получите URL-адрес панели с помощью следующей команды:

minikube dashboard --url

Вы должны получить следующий результат:

* Enabling dashboard ...
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

You can now access and manage the Kubernetes cluster using the URL http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

Заключение

В приведенном выше руководстве вы узнали, как установить Minikube и использовать его для настройки кластера Kubernetes в Ubuntu 20.04. Теперь вы можете использовать Minikube для локальной настройки кластера Kubernetes и управления им из веб-браузера. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.