Правильная поза установки миникуба в windows

Kubernetes
Правильная поза установки миникуба в windows

🎓 Чему вы научитесь?

  • Установить под Windowsminikubeподробные шаги
  • Проблемы, с которыми вы можете столкнуться при установке и их решения

Приходите, сегодня мы закинем установку на операционную систему Windowsminikube

🙋 Эгг Нил: Что такое миникуке?

Давайте посмотрим, как официальное введение:

Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a Virtual Machine (VM) on your laptop for users looking to try out Kubernetes or develop with it day-to-day.

Проще говоря, это инструмент, который позволяет запускать одну ноду (node) локально (обычно в учебных или экспериментальных целях).k8sкластер

🙋 Эгг Нил: Этоk8sЧто это?

О Боже! Возможно, эта статья не для вас.

Кинь ссылку, узнай сам:Это особенное. IO/this/docs/con…


В Windows рекомендуемый способ установки: запустите Linux (например, CentOS) на виртуальной машине, а затем установите minikube в Linux.

🙋 Яйцо Нил: Почему это?

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

Во-вторых, при таком способе изоляции не будет «загрязнения» операционной системы.

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

  • Windows 8 или выше
  • Поддержка виртуализации

🙋 Эггнелл: Как узнать, поддерживает ли моя машина виртуализацию?

Откройте командную строку и запуститеsysteminfo, вывод следующего в порядке:

# 英文版本:
Hyper-V Requirements:     VM Monitor Mode Extensions: Yes
                          Virtualization Enabled In Firmware: Yes
                          Second Level Address Translation: Yes
                          Data Execution Prevention Available: Yes

# 中文版本:
Hyper-V 要求:     虚拟机监视器模式扩展: 是
                  固件中已启用虚拟化: 是
                  二级地址转换: 是
                  数据执行保护可用: 是

Хорошо, давайте начнем с радостью.

1. Установите CentOS на виртуальную машину

Адрес загрузки VirtualBox:Woohoo. VirtualBox.org/wiki/down  …

Адрес загрузки CentOS:www.centos.org/download/

Следующая демонстрация устанавливает CentOS версии 7.6. Почему это? Потому что я уже скачал эту версию на свой компьютер.

1.1 Создайте виртуальную машину

  • Выберите тип: Linux и версию: Red Hat (64-разрядная версия).

  • Далее устанавливаем память, размер жесткого диска

Параметры по умолчанию хороши и не нуждаются в изменении. Дайте жесткий диск на 15G или больше, не скупитесь.

1.2 Установите диск, настройте сеть и отрегулируйте количество ЦП

  • Смонтируйте загруженный ISO-файл CentOS

  • Настройте сеть виртуальной машины наBrided Adapter

🙋 Яйцо Нил: Почему это? Почему бы не выбрать NAT по умолчанию

Хороший вопрос. Просто взглянитеNATа такжеBridged Adapterразница

  • NAT: виртуальная машина не имеет независимого IP-адреса, поэтому виртуальная машина может получить доступ к хосту, но хост не может получить доступ к виртуальной машине.
  • Мостовой адаптер: виртуальная машина имеет независимый IP-адрес, как и другие компьютеры в той же локальной сети, хост и виртуальная машина могут получать доступ друг к другу.

Наш сценарий заключается в том, что мы хотим иметь доступ к службам виртуальной машины на хосте, например к панели управления k8s, поэтому выберитеBridged Adapter

  • Установите количество ЦП на 2 или более

🙋 Яйцо Нил: 1 недостаточно?

Не волнуйтесь, я объясню это позже в свое время.

1.3 Установите CentOS

нажмитеStartЗапустите виртуальную машину.

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

Когда вы увидите следующий интерфейс, подождите некоторое время, после автоматической проверки каждый элемент станет обычным черным.

Сосредоточьтесь на двух из них. Остальные пункты устанавливать не нужно, просто оставьте значения по умолчанию.

  • Пункт 1: НАЗНАЧЕНИЕ УСТАНОВКИ

Нажмите, чтобы выбрать жесткий диск для установки

  • Пункт 2: СЕТЬ И ИМЯ ХОСТА

Нажмите, чтобы включить сетевое подключение

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

После нажатия ROOT PASSWORD, чтобы установить пароль, вы можете пойти и сделать чашку кофе в это время.

После долгого ожидания этот интерфейс наконец прибыл, о да!

нажмитеRebootперезагружать

2. Запустите службу sshd

🙋 Яйцо Нил: Ты не можешь работать на виртуальной машине? Почему вы хотите включить эту услугу?

ты имеешь в виду это? Вы можете попробовать это сами, вы будете знать, как сложно это использовать. Мышь должна двигаться вперед и назад, нельзя копировать и вставлять, нельзя открывать несколько терминалов и т. д.

Выполните следующую команду, чтобы получить его

# systemctl start sshd

Теперь вы можете использовать свой любимый инструмент терминала, напримерputtyДавайте войдем в CentOS для работы.

🙋 Эгг Нил: Подождите, какой IP?

Это просто, используйтеifconfigкоманда для просмотра. ааа~~~

Нет, даже не этот приказ.

Вот как это использовать в CentOS.yumустановить пакет

Шаг 1: Сначала проверьте пакет, которому принадлежит команда:

# yum provides ifconfig

Шаг 2: Установите указанный пакет

# yum install net-tools

Хорошо, после завершения установки вы можете пройтиifconfigПроверьте IP вашей виртуальной машины

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

Потому что мы будем работать непосредственно на хосте (в данном случае CentOS), а не на виртуальной машине.k8sформа компонента (т.--vm-driver=noneпараметр для запускаminikube), поэтому вам нужно установитьDocker.

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

упоминается здесь--vm-driver=none, помните шаг выше, чтобы установить ЦП на 2? Причина в том, чтобы начать с этого параметраminikubeНужен как минимум двухъядерник.

Приходите, мы можем установить и запустить его с помощью следующих командdockerСлужить

# curl -fsSL https://get.docker.com -o get-docker.sh
# sh get-docker.sh
# systemctl start docker
# systemctl enable docker

Еще раз проверьте:

# docker version

В настоящее время установлен номер версии докера: 19.03.5.

4. Установите кубектл

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

# curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
# chmod +x ./kubectl
# mv ./kubectl /usr/local/bin/kubectl

Давай, проверь:

# kubectl version --client

На данный момент установлена ​​версия kubectl: v1.17.3.

5. Установите и запустите миникуб

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

# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
# mkdir -p /usr/local/bin/
# install minikube /usr/local/bin/

Подтвердите это

# minikube version

На данный момент установлена ​​версия minikube: v1.7.2.

Затем начните:

# minikube start --vm-driver=none

🙋 Яйцо Нил: Я долго ждал, чтобы начать, но ни одна подсказка не увенчалась успехом, см.:VM is unable to access k8s.gcr.io, you may need to configure a proxy or set --image-repositoryТы сделал это вчера?

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

# minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

Если аварии нет, то запустится успешно, давайте проверим:

# minikube status
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

6. Запустите панель управления k8s

Далее включаем сервис дашборда, что позволит нам легко управлять кластером k8s через интерфейс:

# minikube dashboard

🙋 Яйцо Нил: К сожалению, все прошло не так, и оно не запустилось успешно, и было сообщено об ошибке:/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ is not accessible: Temporary Error: unexpected response code: 503

OK. Итак, давайте попробуем найти подсказки, просмотрев журналы.

Сначала проверьте рабочее состояние модулей.

# kubectl get pods -A

Находитьkubernetes-dashboardСтатус модуля не является нормальным, тогда мы проверим журнал работы модуля.

# kubectl logs kubernetes-dashboard-79d9cd965-kj5ln -n kubernetes-dashboard

🙋 Яйцо Нил: Обнаружено сообщение об ошибке:connect: no route to host

Ну и проблема с локальной маршрутизацией. После неустанных поисков и попыток окончательное решение состоит в том, чтобы сбросить iptables с помощью следующей команды:

# systemctl stop kubelet
# systemctl stop docker
# iptables --flush
# iptables -tnat --flush
# systemctl start kubelet
# systemctl start docker

повторный запускminikube dashboardПопробуйте начать.

🙋 Эгг Нил: Стартап удался. Но как получить доступ к панели управления на хосте Windows?

остановись первымminikube dashboardКоманду мы изменили на kubectl proxy, чтобы запустить прокси-сервис, чтобы к дашборду k8s можно было получить доступ извне по IP

// 其中 --address 是你虚拟机的IP,可通过 ifconfig 获得
# kubectl proxy --port=8001 --accept-hosts='^.*' --address='192.168.31.136'

адрес:http://192.168.31.136:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default

Если вы по-прежнему не можете получить доступ к панели управления в браузере хоста Windows, это может быть связано с портом CentOS, и вы можете добавить следующие правила брандмауэра.

# firewall-cmd --zone=public --add-port=8001/tcp --permanent
success
# firewall-cmd --reload
success

7. Самостоятельный запуск

Не удалось в конце/etc/rc.d/rc.localСпособ увеличить выполнение скрипта самозапуск, и всегда будут разные проблемы, поэтому я наконец-то написал скрипт запускаstart-k8s.sh, содержание следующее:

iptables --flush
iptables -tnat --flush

systemctl start docker
minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

sleep 10
kubectl proxy --port=8001 --accept-hosts='^.*' --address='192.168.31.136'

После каждого запуска CentOS вручную выполняйте этот скрипт:sh start-k8s.sh

Хорошо, все готово, можете попробовать еще раз.

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

8. Экспортируйте виртуальную машину

Наконец, вы можете экспортировать свои результаты и делиться ими с друзьями. Выберите виртуальную машину и щелкните контекстное меню.Export to OCI...меню, вплоть до значения по умолчанию, чтобы завершить экспорт.


Наконец, закончил писать. Я думаю, что это полезно, ставьте палец вверх. Пока-пока!