🎓 Чему вы научитесь?
- Установить под Windows
minikube
подробные шаги- Проблемы, с которыми вы можете столкнуться при установке и их решения
Приходите, сегодня мы закинем установку на операционную систему 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'
Если вы по-прежнему не можете получить доступ к панели управления в браузере хоста 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...
меню, вплоть до значения по умолчанию, чтобы завершить экспорт.
Наконец, закончил писать. Я думаю, что это полезно, ставьте палец вверх. Пока-пока!