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

Настройка локальной среды разработки Kubernetes и Istio

Как разработчик, я предпочитаю как можно больше разрабатывать локально, потому что, как правило, разрабатывать и отлаживать код проще и быстрее. Для создания облачных приложений и микросервисов очень удобно иметь локальный кластер Kubernetes и Istio, работающий локально. Помеченный kubernetes, istio, java, микросервисами.

Как разработчик, я предпочитаю как можно больше разрабатывать локально, потому что, как правило, разрабатывать и отлаживать код проще и быстрее. Для создания облачных приложений и микросервисов очень удобно иметь локальный Kubernetes кластер и Istio выполняется локально. В этой статье описывается, как установить эти компоненты и некоторые дополнительные инструменты, такие как Kigali .

Миникуб

Для локального запуска кластеров Kubernetes существуют различные альтернативы. Один из них заключается в использовании функциональности Kubernetes, интегрированной в Docker Desktop . Альтернатива, которую я выбрал, – это Minicube , который запускает одноузловой кластер Kubernetes внутри виртуальной машины на вашем компьютере разработки.

Следуйте инструкциям по установке kubectl и Мини – куб . В качестве гипервизора я использую VirtualBox, который поддерживается на Mac, Linux и Windows.

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

$ minikube config set cpus 4
$ minikube config set memory 8192
$ minikube config set disk-size 50g
$ minikube addons enable ingress
$ minikube start

“запуск мини-куба” может занять несколько минут при первом запуске. Будьте терпеливы.

Иногда “запуск мини-кубика” у меня не работает. В этом случае я останавливаю свой VPN, вызываю ‘minicube delete#, удаляю каталог ‘.minikube’, перезагружаю свой компьютер и запускаю его снова.

После этого вы можете получить IP-адрес Mini cube и открыть панель управления Kubernetes с помощью следующих команд:

$ minikube ip
$ minikube dashboard

Mini cube поставляется с собственным демоном Docker, так что вам не нужно использовать Docker Desktop. Вам нужен только CLI ‘docker’ и укажите его на Minikube:

$ eval $(minikube docker-env)

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

$ minikube stop

Это к

Чтобы загрузить Istio, выполните эту команду:

$ curl -L [https://git.io/getLatestIstio](https://git.io/getLatestIstio) | sh -

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

Чтобы установить Istio, выполните следующие команды:

$ cd istio-1.0.6
$ kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml
$ kubectl apply -f install/kubernetes/istio-demo.yaml

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

$ kubectl get pod -n istio-system

На этом скриншоте показаны все запущенные или завершенные модули Edition (пока игнорируйте модуль Kigali).

На последнем шаге включите автоматический впрыск коляски:

$ kubectl label namespace default istio-injection=enabled

После настройки Mini cube и Istio вы можете использовать следующие инструменты:

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

$ minikube dashboard

Приборная панель Егеря

$ kubectl port-forward -n istio-system $(kubectl get pod -n istio-system -l app=jaeger -o jsonpath='{.items[0].metadata.name}') 16686:16686

URL-адрес для открытия Jaeger: http://localhost:16686

Приборная панель Grafana

$ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &

URL-адрес для открытия Графаны: http://localhost:3000/dashboard/db/istio-mesh-dashboard

Панель управления “Прометей”

$ kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 9090:9090 &

URL-адрес для открытия Prometheus: http://localhost:9090

Кигали

Выполните следующую команду для установки Kiali:

$ bash <(curl -L [http://git.io/getLatestKialiKubernetes](http://git.io/getLatestKialiKubernetes))

Примечание: По какой-то причине сценарий у меня не сработал. Мне пришлось заменить одну строку :

get_downloader
github_api_url="[https://api.github.com/repos/kiali/kiali/releases/latest](https://api.github.com/repos/kiali/kiali/releases/latest)"
kiali_version_we_want="v0.15.0"

Чтобы запустить Kigali, вам нужен IP-адрес и порт узла:

$ minikube ip
$ kubectl get svc -n istio-system kiali --output 'jsonpath={.spec.ports[*].nodePort}'

URL-адрес для открытия Kiali: https://[minikube-ip]:[kiali-nodeport]/kiali

Образец Заявления

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

На данный момент вы можете установить два примера микросервисов из этого проекта. Убедитесь, что Minicube запущен и вы установили все необходимые предварительные условия :

$ git clone [https://github.com/nheidloff/cloud-native-starter.git](https://github.com/nheidloff/cloud-native-starter.git)
$ scripts/check-prerequisites.sh
$ scripts/deploy-articles-java-jee.sh
$ scripts/deploy-web-api-java-jee.sh

На следующем снимке экрана показан микросервис BFF (backend for frontend) “web-api”, вызывающий другой веб-сервис “articles”.:

Most of the information in this article I got from Harald Uebele . Спасибо, Харальд. Я просто добавил некоторые детали, которые я должен был сделать по-другому.

Оригинал: “https://dev.to/nheidloff/setup-of-a-local-kubernetes-and-istio-dev-environment-1c67”