Как разработчик, я предпочитаю как можно больше разрабатывать локально, потому что, как правило, разрабатывать и отлаживать код проще и быстрее. Для создания облачных приложений и микросервисов очень удобно иметь локальный 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”