Рубрики
Без рубрики

Развертывание приложения Spring Boot в Kubernetes

В этой статье я объясню, как вы можете создать модуль, развернуть приложение spring boot, управлять т… Помечен docker, kubernetes, springboot, java.

В этой статье я объясню, как вы можете создать модуль, развернуть приложение 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.

  1. Создайте модуль, используя приведенный ниже файл 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.65




Welcome 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.1              443/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”