# Установка Kubernetes с помощью Minikube

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

Minikube — это инструмент, позволяющий легко запускать Kubernetes на локальной машине. Для тех, кто хочет попробовать Kubernetes или рассмотреть возможность его использования в повседневной разработке, Minikube станет отличным вариантом, потому что он запускает одноузловой кластер Kubernetes внутри виртуальной машины (VM) на компьютере пользователя.



<!-- body -->

## Возможности Minikube

Minikube поддерживает следующие возможности Kubernetes:

* DNS
* Сервисы NodePort
* Словари конфигурации (ConfigMaps) и секреты (Secrets)
* Панель управления (Dashboard)
* Среда выполнения контейнера: Docker, [CRI-O](https://cri-o.io/) и [containerd](https://github.com/containerd/containerd)
* Поддержка CNI (Container Network Interface)
* Ingress

## Установка

Посмотрите страницу [Установка Minikube](/ru/docs/tasks/tools/install-minikube/).

## Краткое руководство

Эта простая демонстрация поможет запустить, использовать и удалить Minikube на локальной машине. Следуйте перечисленным ниже шагам, чтобы начать знакомство с Minikube.

1. Запустите Minikube и создайте кластер:

    ```shell
    minikube start
    ```

    Вывод будет примерно следующим:

    ```
    Starting local Kubernetes cluster...
    Running pre-create checks...
    Creating machine...
    Starting local Kubernetes cluster...
    ```

    Дополнительную информацию о запуске кластера в определенной версии Kubernetes, виртуальной машине или среде выполнения контейнера смотрите в разделе [Запуск кластера](#запуск-кластера).

2. Теперь вы можете работать со своим кластером через CLI-инструмент kubectl. Для получения дополнительной информации смотрите раздел [Работа с кластером](#работа-с-кластером).

    Давайте создадим развёртывание (Deployment) в Kubernetes, используя существующий образ `echoserver`, представляющий простой HTTP-сервер, и сделаем его доступным на порту 8080 с помощью `--port`.

    ```shell
    kubectl create deployment hello-minikube --image=registry.k8s.io/echoserver:1.10
    ```

    Вывод будет примерно следующим:

    ```
    deployment.apps/hello-minikube created
    ```

3. Чтобы получить доступ к объекту Deployment `hello-minikube` извне, создайте объект сервиса (Service):

    ```shell
    kubectl expose deployment hello-minikube --type=NodePort --port=8080
    ```

    Опция `--type=NodePort` определяет тип сервиса.

    Вывод будет примерно следующим:

    ```
    service/hello-minikube exposed
    ```

4. Под (Pod) `hello-minikube` теперь запущен, но нужно подождать, пока он начнёт функционировать, прежде чем обращаться к нему.

    Проверьте, что под работает:

    ```shell
    kubectl get pod
    ```

    Если в столбце вывода `STATUS` выводится `ContainerCreating`, значит под все еще создается:

    ```
    NAME                              READY     STATUS              RESTARTS   AGE
    hello-minikube-3383150820-vctvh   0/1       ContainerCreating   0          3s
    ```

    Если в столбце `STATUS` указано `Running`, то под теперь в рабочем состоянии:

    ```
    NAME                              READY     STATUS    RESTARTS   AGE
    hello-minikube-3383150820-vctvh   1/1       Running   0          13s
    ```

5. Узнайте URL-адрес открытого (exposed) сервиса, чтобы просмотреть подробные сведения о сервисе:

    ```shell
    minikube service hello-minikube --url
    ```

6. Чтобы ознакомиться с подробной информацией о локальном кластере, скопируйте и откройте полученный из вывода команды на предыдущем шаге URL-адрес в браузере.

    Вывод будет примерно следующим:

    ```
    Hostname: hello-minikube-7c77b68cff-8wdzq

    Pod Information:
        -no pod information available-

    Server values:
        server_version=nginx: 1.13.3 - lua: 10008

    Request Information:
        client_address=172.17.0.1
        method=GET
        real path=/
        query=
        request_version=1.1
        request_scheme=http
        request_uri=http://192.168.99.100:8080/

    Request Headers:
        accept=*/*
        host=192.168.99.100:30674
        user-agent=curl/7.47.0

    Request Body:
        -no body in request-
    ```

    Если сервис и кластер вам больше не нужны, их можно удалить.

7. Удалите сервис `hello-minikube`:

    ```shell
    kubectl delete services hello-minikube
    ```

    Вывод будет примерно следующим:

    ```
    service "hello-minikube" deleted
    ```

8. Удалите развёртывание `hello-minikube`:

    ```shell
    kubectl delete deployment hello-minikube
    ```

    Вывод будет примерно следующим:

    ```
    deployment.extensions "hello-minikube" deleted
    ```

9. Остановите локальный кластер Minikube:

    ```shell
    minikube stop
    ```

    Вывод будет примерно следующим:

    ```
    Stopping "minikube"...
    "minikube" stopped.
    ```

    Подробности смотрите в разделе [Остановка кластера](#остановка-кластера).

10. Удалите локальный кластер Minikube:

    ```shell
    minikube delete
    ```

    Вывод будет примерно следующим:

    ```
    Deleting "minikube" ...
    The "minikube" cluster has been deleted.
    ```

    Подробности смотрите в разделе [Удаление кластера](#удаление-кластера).

## Управление кластером

### Запуск кластера

Команда `minikube start` используется для запуска кластера.
Эта команда создаёт и конфигурирует виртуальную машину, которая запускает одноузловой кластер Kubernetes.
Эта команда также настраивает вашу установку [kubectl](/docs/user-guide/kubectl-overview/) для взаимодействия с этим кластером.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примечание:</h4><p>Если вы работаете из-под веб-прокси, вам нужно указать данные прокси в команде <code>minikube start</code>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="nv">https_proxy</span><span class="o">=</span>&lt;my proxy&gt; minikube start --docker-env <span class="nv">http_proxy</span><span class="o">=</span>&lt;my proxy&gt; --docker-env <span class="nv">https_proxy</span><span class="o">=</span>&lt;my proxy&gt; --docker-env <span class="nv">no_proxy</span><span class="o">=</span>192.168.99.0/24
</span></span></code></pre></div><p>К сожалению, установка переменных окружения не cработает.</p>
<p>Minikube также создает контекст &quot;minikube&quot; и устанавливает его по умолчанию в kubectl.
Чтобы вернуться к этому контексту, выполните следующую команду: <code>kubectl config use-context minikube</code>.</p>
</div>


#### Указание версии Kubernetes

Вы можете указать используемую версию Kubernetes в Minikube, добавив параметр `--kubernetes-version` в команду `minikube start`. Например, чтобы запустить Minikube из-под версии 1.36.0, вам нужно выполнить следующую команду:

```shell
minikube start --kubernetes-version 1.36.0
```

#### Указание драйвера виртуальной машины

Вы можете изменить драйвер виртуальной машины, добавив флаг `--vm-driver=<enter_driver_name>` в команду `minikube start`.

Тогда команда будет выглядеть так:

```shell
minikube start --vm-driver=<driver_name>
```

Minikube поддерживает следующие драйверы:


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примечание:</h4>Смотрите страницу <a href="https://minikube.sigs.k8s.io/docs/reference/drivers/">DRIVERS</a> для получения подробной информации о поддерживаемых драйверах и как устанавливать плагины.</div>


* virtualbox
* vmwarefusion
* docker (ЭКСПЕРИМЕНТАЛЬНЫЙ)
* kvm2 ([установка драйвера](https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/))
* hyperkit ([установка драйвера](https://minikube.sigs.k8s.io/docs/reference/drivers/hyperkit/))
* hyperv ([установка драйвера](https://minikube.sigs.k8s.io/docs/reference/drivers/hyperv/))
Обратите внимание, что указанный IP-адрес на этой странице является динамическим и может изменяться. Его можно получить с помощью `minikube ip`.
* vmware ([установка драйвера](https://minikube.sigs.k8s.io/docs/reference/drivers/vmware/)) (VMware unified driver)
* parallels ([установка драйвера](https://minikube.sigs.k8s.io/docs/reference/drivers/parallels/))
* none (Запускает компоненты Kubernetes на хосте, а не на виртуальной машине. Использование этого драйвера требует использование Linux и установленного <a class='glossary-tooltip' title='Docker — это программное обеспечение, реализующее виртуализацию на уровне операционной системы, которая известна как контейнеризация.' data-bs-toggle='tooltip' data-bs-placement='top' href='https://docs.docker.com/engine/' target='_blank' aria-label='Docker'>Docker</a>.)

<div class="alert alert-caution" role="note"><h4 class="alert-heading">Внимание:</h4>Если вы используете драйвер <code>none</code>, некоторые компоненты Kubernetes запускаются как привилегированные контейнеры, которые имеют побочные эффекты вне окружения Minikube. Эти побочные эффекты означают, что драйвер <code>none</code> не рекомендуется использовать в личных рабочих станций.</div>


#### Запуск кластера в других средах выполнения контейнеров

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

<ul class="nav nav-tabs" id="tabs-container-runtimes" role="tablist"><li class="nav-item"><a data-bs-toggle="tab" class="nav-link active" href="#tabs-container-runtimes-0" role="tab" aria-controls="tabs-container-runtimes-0" aria-selected="true">containerd</a></li>
	  
		<li class="nav-item"><a data-bs-toggle="tab" class="nav-link" href="#tabs-container-runtimes-1" role="tab" aria-controls="tabs-container-runtimes-1">CRI-O</a></li></ul>

<div class="tab-content" id="tabs-container-runtimes-content"><div class="tab-body tab-pane fadeshow active"
        id="tabs-container-runtimes-0" role="tabpanel" aria-labelledby="tabs-container-runtimes-0-tab" tabindex="container-runtimes"><p>Чтобы использовать <a href="https://github.com/containerd/containerd">containerd</a> в качестве среды выполнения контейнера, выполните команду ниже:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">minikube start <span class="se">\
</span></span></span><span class="line"><span class="cl">    --network-plugin<span class="o">=</span>cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --enable-default-cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --container-runtime<span class="o">=</span>containerd <span class="se">\
</span></span></span><span class="line"><span class="cl">    --bootstrapper<span class="o">=</span>kubeadm
</span></span></code></pre></div><p>Также можете использовать расширенную вариант команды:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">minikube start <span class="se">\
</span></span></span><span class="line"><span class="cl">    --network-plugin<span class="o">=</span>cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --enable-default-cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.container-runtime<span class="o">=</span>remote <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.container-runtime-endpoint<span class="o">=</span>unix:///run/containerd/containerd.sock <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.image-service-endpoint<span class="o">=</span>unix:///run/containerd/containerd.sock <span class="se">\
</span></span></span><span class="line"><span class="cl">    --bootstrapper<span class="o">=</span>kubeadm
</span></span></code></pre></div></div><div class="tab-body tab-pane fade"
        id="tabs-container-runtimes-1" role="tabpanel" aria-labelledby="tabs-container-runtimes-1-tab" tabindex="container-runtimes"><p>Чтобы использовать <a href="https://cri-o.io/">CRI-O</a> в качестве среды выполнения контейнера, выполните команду ниже:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">minikube start <span class="se">\
</span></span></span><span class="line"><span class="cl">    --network-plugin<span class="o">=</span>cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --enable-default-cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --container-runtime<span class="o">=</span>cri-o <span class="se">\
</span></span></span><span class="line"><span class="cl">    --bootstrapper<span class="o">=</span>kubeadm
</span></span></code></pre></div><p>Также можете использовать расширенную вариант команды:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">minikube start <span class="se">\
</span></span></span><span class="line"><span class="cl">    --network-plugin<span class="o">=</span>cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --enable-default-cni <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.container-runtime<span class="o">=</span>remote <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.container-runtime-endpoint<span class="o">=</span>/var/run/crio.sock <span class="se">\
</span></span></span><span class="line"><span class="cl">    --extra-config<span class="o">=</span>kubelet.image-service-endpoint<span class="o">=</span>/var/run/crio.sock <span class="se">\
</span></span></span><span class="line"><span class="cl">    --bootstrapper<span class="o">=</span>kubeadm
</span></span></code></pre></div></div></div>


#### Использование локальных образов путём повторного использования демона Docker

При использовании одной виртуальной машины для Kubernetes легко повторно использовать демон Docker, встроенный в Minikube. В этом случае нет необходимости создавать реестр Docker на вашей хост-машине и отправлять образ туда. Вместо этого вы можете создать реестр внутри того же демона Docker, который использует Minikube, что позволит ускорить локальные запуски.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примечание:</h4>Обязательно пометьте собственным тегом Docker-образ, и затем при получении образа всегда указывайте его. Так как <code>:latest</code> — это тег по умолчанию, поэтому наряду с соответствующей стандартной политикой получения образа, равной <code>Always</code>, в конечном итоге возникнет ошибка при получении образа (<code>ErrImagePull</code>), если Docker-образ не найден в базовом реестре Docker (как правило, в DockerHub).</div>


Для работы с Docker-демоном на вашем хосте под управлением Mac/Linux, запустите последнюю строку из вывода команды `minikube docker-env`.

Теперь вы можете использовать Docker в командной строке вашего хост-компьютера на Mac/Linux для взаимодействия с демоном Docker внутри виртуальной машины Minikube:

```shell
docker ps
```


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примечание:</h4><p>На Centos 7 Docker может возникнуть следующая ошибка:</p>
<pre tabindex="0"><code>Could not read CA certificate &#34;/etc/docker/ca.pem&#34;: open /etc/docker/ca.pem: no such file or directory
</code></pre><p>Для исправления этой ошибки обновите файл <code>/etc/sysconfig/docker</code>, чтобы учитывались изменения в среде Minikube:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">&lt; <span class="nv">DOCKER_CERT_PATH</span><span class="o">=</span>/etc/docker
</span></span><span class="line"><span class="cl">---
</span></span><span class="line"><span class="cl">&gt; <span class="k">if</span> <span class="o">[</span> -z <span class="s2">&#34;</span><span class="si">${</span><span class="nv">DOCKER_CERT_PATH</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="cl">&gt;   <span class="nv">DOCKER_CERT_PATH</span><span class="o">=</span>/etc/docker
</span></span><span class="line"><span class="cl">&gt; <span class="k">fi</span>
</span></span></code></pre></div></div>


### Конфигурация Kubernetes

Minikube имеет такую возможность как "конфигуратор" ("configurator"), позволяющая пользователям настраивать компоненты Kubernetes произвольными значениями.
Чтобы использовать эту возможность, используйте флаг `--extra-config` в команде `minikube start`.

Этот флаг можно дублировать, поэтому вы можете указать его несколько раз с несколькими разными значениями, чтобы установить несколько опций.

Этот флаг принимает строку вида `component.key=value`, где `component` — это одно из значение в приведённом ниже списка, `key` — ключ из структуры конфигурации, а `value` — значение, которое нужно установить.

Допустимые ключи можно найти в документации по `componentconfigs` в Kubernetes каждого компонента.
Ниже вы найдете документации по каждой поддерживаемой конфигурации:

* [kubelet](https://godoc.org/k8s.io/kubernetes/pkg/kubelet/apis/config#KubeletConfiguration)
* [apiserver](https://godoc.org/k8s.io/kubernetes/cmd/kube-apiserver/app/options#ServerRunOptions)
* [proxy](https://godoc.org/k8s.io/kubernetes/pkg/proxy/apis/config#KubeProxyConfiguration)
* [controller-manager](https://godoc.org/k8s.io/kubernetes/pkg/controller/apis/config#KubeControllerManagerConfiguration)
* [etcd](https://godoc.org/github.com/coreos/etcd/etcdserver#ServerConfig)
* [scheduler](https://godoc.org/k8s.io/kubernetes/pkg/scheduler/apis/config#KubeSchedulerConfiguration)

#### Примеры

Чтобы изменить настройку `MaxPods` на значение 5 в Kubelet, передайте этот флаг `--extra-config=kubelet.MaxPods=5`.

Эта возможность также поддерживает вложенные структуры. Для изменения настройки `LeaderElection.LeaderElect` на значение `true` в планировщике, передайте флаг `--extra-config=scheduler.LeaderElection.LeaderElect=true`.

Чтобы изменить настройку `AuthorizationMode` в `apiserver` на значение `RBAC`, используйте флаг `--extra-config=apiserver.authorization-mode=RBAC`.

### Остановка кластера

Команда `minikube stop` используется для остановки кластера.
Эта команда выключает виртуальную машины Minikube, но сохраняет всё состояние кластера и данные.
Повторный запуск кластера вернет его в прежнее состояние.

### Удаление кластера

Команда `minikube delete` используется для удаления кластера.
Эта команда выключает и удаляет виртуальную машину Minikube.
Данные или состояние не сохраняются.

### Обновление minikube

Смотрите [инструкцию по обновлению minikube](https://minikube.sigs.k8s.io/docs/start/macos/).

## Работа с кластером

### Kubectl

Команда `minikube start` создает [контекст kubectl](/docs/reference/generated/kubectl/kubectl-commands#-em-set-context-em-) под именем "minikube".
Этот контекст содержит конфигурацию для взаимодействия с кластером Minikube.

Minikube автоматически устанавливает этот контекст, но если вам потребуется явно использовать его в будущем, выполните команду ниже:

```shell
kubectl config use-context minikube
```

Либо передайте контекст при выполнении команды следующим образом: `kubectl get pods --context=minikube`.

### Панель управления

Чтобы получить доступ к [веб-панели управления Kubernetes](/docs/tasks/access-application-cluster/web-ui-dashboard/), запустите эту команду в командной оболочке после запуска Minikube, чтобы получить адрес:

```shell
minikube dashboard
```

### Сервисы

Чтобы получить доступ к сервису, открытой через порт узла, выполните команду в командной оболочке после запуска Minikube, чтобы получить адрес:

```shell
minikube service [-n NAMESPACE] [--url] NAME
```

## Организация сети

Виртуальная машина Minikube доступна только хост-системе через IP-адрес, который можно получить с помощью команды `minikube ip`.
Вы можете использовать IP-адрес для доступа к любому сервису типа `NodePort`.

Чтобы определить NodePort для вашего сервиса, вы можете использовать такую команду `kubectl`:

```shell
kubectl get service $SERVICE --output='jsonpath="{.spec.ports[0].nodePort}"'
```

## Постоянные тома

Minikube поддерживает [PersistentVolumes](/docs/concepts/storage/persistent-volumes/) типа `hostPath`.
Эти постоянные тома монтируются в виртуальную машину Minikube.

Виртуальная машина Minikube загружается в файловую систему tmpfs, поэтому большинство директорий не будет сохранено при перезагрузках (`minikube stop`).
Однако Minikube сконфигурирован на сохранение файлов, хранящихся в перечисленных ниже директорий хоста.

* `/data`
* `/var/lib/minikube`
* `/var/lib/docker`

Пример конфигурации PersistentVolume для сохранения данных в директории `/data`:

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0001
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 5Gi
  hostPath:
    path: /data/pv0001/
```

## Смонтированные директории хоста

Некоторые драйверы монтируют директорию хоста в виртуальную машину, чтобы можно было легко обмениваться файлами между виртуальной машиной и хостом. В настоящее время это не настраивается и отличается от используемого драйвера и ОС.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примечание:</h4>Совместное использование директории хоста еще не реализовано в драйвере KVM.</div>


| Driver        | OS      | HostFolder | VM              |
|---------------|---------|------------|-----------------|
| VirtualBox    | Linux   | /home      | /hosthome       |
| VirtualBox    | macOS   | /Users     | /Users          |
| VirtualBox    | Windows | C://Users  | /c/Users        |
| VMware Fusion | macOS   | /Users     | /mnt/hgfs/Users |
| Xhyve         | macOS   | /Users     | /Users          |

## Приватные реестры контейнеров

Для доступа к реестру приватных контейнеров, выполните шаги, описанные на [этой странице](/docs/concepts/containers/images/).

Мы рекомендуем использовать `ImagePullSecrets`, но если вам нужно обратиться к нему из виртуальной машины Minikube, нужно поместить файл `.dockercfg` в директорию `/home/docker` или `config.json` в директорию `/home/docker/.docker`.

## Дополнения

Для того, чтобы Minikube смог запустить или перезапустить пользовательские дополнения, поместите дополнения, которые вы хотите запускать с помощью Minikube, в директорию `~/.minikube/addons`. Дополнения в этой директории будут перемещены в виртуальную машину Minikube и запускаться каждый раз при запуске или перезапуске Minikube.

## Использование Minikube с помощью HTTP-прокси

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

Если вы работаете через HTTP-прокси, вам нужно сконфигурировать настройки прокси для Docker.
Для этого нужно передать необходимые переменные окружения в флаги перед выполнением команды `minikube start`.

Например:

```shell
minikube start --docker-env http_proxy=http://$YOURPROXY:PORT \
                 --docker-env https_proxy=https://$YOURPROXY:PORT
```

Если адрес вашей виртуальной машины 192.168.99.100, то, скорее всего, настройки прокси помешают `kubectl` обратиться к ней.
Чтобы прокси игнорировал этот IP-адрес, нужно скорректировать настройки no_proxy следующим образом:

```shell
export no_proxy=$no_proxy,$(minikube ip)
```

## Известные проблемы

Функциональность, для которой требуется несколько узлов, не будет работать в Minikube.

## Реализация

Minikube использует [libmachine](https://github.com/docker/machine/tree/master/libmachine) для подготовки виртуальных машин и [kubeadm](https://github.com/kubernetes/kubeadm) для инициализации кластера Kubernetes.

Для получения дополнительной информации о Minikube посмотрите [статью](https://git.k8s.io/community/contributors/design-proposals/cluster-lifecycle/local-cluster-ux.md).

## Дополнительные ссылки

* **Цели**: цели проекта Minikube смотрите в [дорожной карте](https://git.k8s.io/minikube/docs/contributors/roadmap.md).
* **Руководство по разработке**: посмотрите [CONTRIBUTING.md](https://git.k8s.io/minikube/CONTRIBUTING.md), чтобы ознакомиться с тем, как отправлять пулрексты.
* **Сборка Minikube**: инструкции по сборке/тестированию Minikube из исходного кода смотрите в [руководстве по сборке](https://git.k8s.io/minikube/docs/contributors/build_guide.md).
* **Добавление новой зависимости**: инструкции по добавлению новой зависимости в Minikube смотрите в [руководстве по добавлению зависимостей](https://git.k8s.io/minikube/docs/contributors/adding_a_dependency.md).
* **Добавление нового дополнения**: инструкции по добавлению нового дополнения для Minikube смотрите в [руководстве по добавлению дополнений](https://git.k8s.io/minikube/docs/contributors/adding_an_addon.md).
* **MicroK8**: пользователи Linux, которые не хотят использовать виртуальную машину, могут в качестве альтернативы посмотреть в сторону [MicroK8s](https://microk8s.io/).

## Сообщество

Помощь, вопросы и комментарии приветствуются и поощряются! Разработчики Minikube проводят время на [Slack](https://kubernetes.slack.com) в канале #minikube (получить приглашение можно [здесь](http://slack.kubernetes.io/)). У нас также есть [список рассылки dev@kubernetes на Google Groups](https://groups.google.com/a/kubernetes.io/g/dev/). Если вы отправляете сообщение в список, пожалуйста, начните вашу тему с "minikube: ".
