В этой статье я объясню, как вы можете создать модуль, развернуть приложение spring boot, управлять кластером с одним узлом с помощью Lens IDE на рабочем столе Docker.
Чему вы научитесь.
- Как включить Kubernetes с помощью Docker Desktop для Mac
- Как создать модуль
- Как развернуть работающее приложение Spring Boot в Kubernetes
- Как отслеживать кластер Kubernetes и управлять им с помощью Lens интегрированная среда разработки
Двигаясь дальше, вы можете этого не знать, но вы можете создать функциональный одноузловой кластер Kubernetes, работающий локально с вашим рабочим столом Docker, выполнив следующие действия. Но подождите, что такое рабочий стол Docker?
Что такое рабочий стол Docker?
Согласно официальной документации .
Docker Desktop – это приложение для компьютеров macOS и Windows для создания и совместного использования контейнерных приложений и микросервисов.
Вы можете следовать официальному руководству Docker Desktop установка , если вы его еще не установили.
Как включить Kubernetes с помощью Docker Desktop для Mac
- Перейдите в раздел “Настройки” в строке меню “Докер”. Затем перейдите на вкладку Kubernetes. Установите флажок, чтобы включить Kubernetes и переключить оркестратор по умолчанию на Kubernetes. Для включения Kubernetes потребуется некоторое время.
- Как только он будет включен, вы увидите в строке меню Docker что-то вроде приведенного ниже.
- Затем вам также следует установить контекст Kubernetes на docker-рабочий стол, если у вас несколько кластеров или сред, работающих локально.
Согласно официальной документации интеграция mac с Kubernetes предоставляет команду командной строки Kubernetes по адресу /usr/local/bin/kubectl
. Это местоположение может отсутствовать в переменной ПУТЬ
вашей оболочки, поэтому вам может потребоваться ввести полный путь к команде или добавить его в ПУТЬ
.
kubectl – это инструмент командной строки Kubernetes для выполнения команд в вашем кластере. Узнайте больше о kubectl здесь . Теперь мы можем проверить настройку с помощью приведенной ниже команды kubectl. Результат должен быть примерно таким, как показано ниже.
kubectl get nodes NAME STATUS ROLES AGE VERSION docker-desktop Ready master 19d v1.19.3
Как создать модуль
Модуль в Kubernetes – это наименьшая возможная исполнительная единица. В нем может быть еще один контейнер. Однако мы протестируем настройку, создав простой модуль с одним изображением контейнера в локальном кластере Kubernetes, выполнив следующие действия. В этом контейнере запускается образ Nginx.
- Создайте модуль, используя приведенный ниже файл YAML.
apiVersion: v1 kind: Pod metadata: name: nginx labels: app: nginx spec: containers: - name: mycontainer image: docker.io/nginx ports: - containerPort: 80
Использовать kubectl создать
и имя файла YAML для создания модуля.
kubectl create -f pod.yaml pod/nginx created
2. Проверьте статус модуля, который мы только что создали.
kubectl get pods NAME READY STATUS RESTARTS AGE nginx 1/1 Running 0 2m38s
3. Для дальнейшей отладки модуля и это работает, мы можем получить оболочку для запущенного контейнера с помощью kubectl exec
команда. Оказавшись внутри контейнера, мы просто используем curl для проверки настройки Nginx. Давайте сделаем это сейчас.
kubectl exec -it nginx -- /bin/sh # curl 10.1.0.65Welcome to nginx! Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.Thank you for using nginx.
Как развернуть работающее приложение Spring Boot в Kubernetes
Давайте развернем работающее приложение Spring Boot в нашем локальном кластере Kubernetes. Для демонстрации мы будем использовать приложение для штатов Индии. Вы можете проверить это Репозиторий GitHub, чтобы узнать больше об этом приложении.
В моей предыдущей статье я уже объяснял ресурсы службы и развертывания для этого приложения Kubernetes.
Теперь мы просто клонируем этот репозиторий и создадим манифесты Kubernetes, используя приведенную ниже команду.
git clone https://github.com/yrashish/indian-states cd indian-states/k8s kubectl create -f myservice.yaml service/states created kubectl create -f mydeployment.yaml deployment.apps/states created kubectl get all NAME READY STATUS RESTARTS AGE pod/states-6664b9dbf6-l2tgj 1/1 Running 0 8s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1443/TCP 55s service/states NodePort 10.96.78.225 8080:31238/TCP 15s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/states 1/1 1 1 8s NAME DESIRED CURRENT READY AGE replicaset.apps/states-6664b9dbf6 1 1 1 8s
Теперь просто выполните curl и получите доступ к конечной точке/состояния REST и посмотрите, что произойдет.
curl localhost:31238/states [{"name":"Andra Pradesh","capital":"Hyderabad"},{"name":"Arunachal Pradesh","capital":"Itangar"},{"name":"Assam","capital":"Dispur"},{"name":"Bihar","capital":"Patna"},{"name":"Chhattisgarh","capital":"Raipur"},{"name":"Goa","capital":"Panaji"},{"name":"Gujarat","capital":"Gandhinagar"},{"name":"Haryana","capital":"Chandigarh"},{"name":"Himachal Pradesh","capital":"Shimla"},{"name":"Jharkhand","capital":"Ranchi"},{"name":"Karnataka","capital":"Bangalore"},{"name":"Kerala","capital":"Thiruvananthapuram"},{"name":"Madhya Pradesh","capital":"Bhopal"},{"name":"Maharashtra","capital":"Mumbai"},{"name":"Manipur","capital":"Imphal"},{"name":"Meghalaya","capital":"Shillong"},{"name":"Mizoram","capital":"Aizawi"},{"name":"Nagaland","capital":"Kohima"},{"name":"Orissa","capital":"Bhubaneshwar"},{"name":"Rajasthan","capital":"Jaipur"},{"name":"Sikkim","capital":"Gangtok"},{"name":"Tamil Nadu","capital":"Chennai"},{"name":"Telangana","capital":"Hyderabad"},{"name":"Tripura","capital":"Agartala"},{"name":"Uttaranchal","capital":"Dehradun"},{"name":"Uttar Pradesh","capital":"Lucknow"},{"name":"West Bengal","capital":"Kolkata"},{"name":"Punjab","capital":"Chandigarh"}]
Как отслеживать кластер Kubernetes и управлять им с помощью Lens интегрированная среда разработки
Lens IDEAL для Kubernetes – это настольное приложение для macOS, Windows и Linux для управления вашим кластером. Это полностью бесплатно и с открытым исходным кодом. Вы можете скачать его с здесь . Разработчики, инженеры DevOps, SRE, а также люди, которые изучают Kubernetes на своих ноутбуках, могут использовать это для просмотра своих кластеров и управления ими. Ниже приведены некоторые из выделенных функций, которые он предоставляет.
- Управляйте несколькими кластерами с помощью одной среды разработки.
- 360-градусный обзор вашего кластера.
- Интеграция Прометея
- Контекстно-зависимый встроенный терминал
- Встроенная поддержка для управления диаграммами руля
После его установки вы можете сначала добавить кластер. Lens подключается к вашему кластеру Kubernetes с помощью файла kubeconfig, который обычно находится в вашем $HOME/.кубе
каталог. У вас также есть возможность вставить его в виде текстового файла. Теперь выберите файл kubeconfig, контекст и нажмите “Добавить кластер”.
После добавления кластера вы можете увидеть его на панели навигации слева. В демонстрационных целях я переназначил приложение Spring Boot. В разделе “События” вы можете видеть, что изображение нашего приложения вытягивается.
Мы также можем просмотреть журналы развертывания, которое мы только что завершили. Как вы можете видеть, это приложение развернуто и запущено.
Вы можете масштабировать, перезапускать, редактировать и удалять манифесты Kubernetes изнутри самого себя.
В разделе “Сети” вы также можете просмотреть службы Kubernetes.
В Lens есть функция, позволяющая установить стек Prometheus в вашем кластере, чтобы вы могли собирать показатели о кластере и его узлах. Для установки щелкните правой кнопкой мыши значок кластера в левом верхнем углу объектива и выберите “Настройки”.
На странице настроек в разделе “Функции” вы можете увидеть раздел “Показатели” и кнопку для установки Prometheus. Нажмите кнопку Установить, чтобы развернуть стек Prometheus в вашем кластере.
Объектив начнет отображать показатели примерно через минуту.
Мы рассмотрели лишь несколько функций, которые предоставляет IDE для Kubernetes. На данный момент это конец.
Вывод
В этой статье мы узнали, как включить Kubernetes на рабочем столе Docker для Mac, создали базовый модуль, развернули приложение Spring Boot и управляли нашим одноузловым кластером Kubernetes с помощью Lens IDE. Чего ты ждешь? Перейти к контейнеризации и поделиться своими приложениями?
Поддержи меня
Если вам нравится то, что вы только что прочитали, то вы можете купить мне кофе, перейдя по ссылке на изображении ниже:
Дальнейшее Чтение
Вы можете продолжить чтение некоторых моих предыдущих статей
Оригинал: “https://dev.to/yrashish/running-kubernetes-application-on-docker-desktop-for-mac-5gh1”