Три из самых быстрорастущих архитектурных и развертываемых моделей в программном обеспечении сегодня-микросервисы, Kubernetes и гибридное облако. В этой лаборатории мы пройдемся по созданию гибридного приложения облачного микросервиса, используя Java и Open Liberty, развернув это приложение в кластер Kubernetes, работающий Red Hat OpenShift. Мы сделаем это с помощью бесплатных (!) И пробных ресурсов на IBM Cloud.
ℹ Эта лаборатория использует части Open Liberty Openshift Operators Lab , но консолидировано и обновляется с последними синтаксисами и лабораторными версиями.
Чтобы назначить бесплатный кластер, вам нужно Подпишитесь на IBM Cloud
ℹ Проблемы с активацией вашей учетной записи? Обязательно проверьте свою папку спама на предмет электронной почты активации, и если ваша бесплатная учетная запись электронной почты не работает, попробуйте другой адрес электронной почты, например, Ваше рабочее письмо. По какой -то причине учетные записи Outlook.com часто не зарегистрируются.
Посетите https://olsolab.mybluemix.net и не забудьте использовать следующее Ключ: Ослаб
(Для адреса электронной почты используйте тот же адрес электронной почты, который вы использовали для регистрации своей учетной записи IBM.)
Теперь вы сможете получить доступ к своему кластеру Red Hat OpenShift через облачную панель IBM. Посетите https://cloud.ibm.com/resources :
Теперь , нажмите на имя своего кластера, чтобы получить доступ к странице сведений о кластере на IBM Cloud:
В правом верхнем углу потяните Действия Меню и выберите Связаться с CLI
После нажатия Запросить токен , вы увидите пользовательскую команду, созданную под Войдите с этим токеном Анкет Скопируйте это в буфер обмена, мы будем использовать его через секунду!
Вернемся к вашей облачной панели IBM Cloud, нажмите на IBM Cloud Shell Icon Анкет
Оболочка займет несколько секунд, чтобы вращаться. Как только он будет вживую, вы можете вставка OC Login ...
командование, что мы скопировали несколько шагов раньше. Вуаля, вы теперь вошли в свой кластер OpenShift из облачной оболочки IBM, и вы можете запускать команды, используя OC
!
Во -первых, давайте создадим новый проект. Я позвоню в свой проект гид . Вы можете сделать это через Red Hat OpenShift UI или через CLI:
oc new-project guide
Далее мы установим два оператора: Strimzi Для Кафки и Open Liberty Анкет Для этой установки мы будем использовать последний оператор Open Liberty, но в частности, мы будем использовать версию 0,22,1 Стримзи.
Во -первых, нажмите на ссылку OpenShift Web Console на своей странице IBM Cloud Cluster:
В левом меню нажмите Операторы >> Оператор Хаб Анкет
Затем убедитесь, что вы перешли на соответствующий проект, который мы назвали Руководство Анкет
ℹ Вы можете использовать любое название проекта, просто убедитесь, что быть последовательным.
Теперь, когда у нас выбран правильный проект, давайте установим Последний Версия Open Liberty и версия 0,22,1 из Strimzi Анкет
Давайте используем пример кода, предоставленный проектом Open Liberty, для развертывания некоторых простых микросервисов. Мы клонируем код, используя эти команды:
git clone https://github.com/openliberty/guide-cloud-openshift-operator.git cd guide-cloud-openshift-operator cd start
Мы изменим файлы в старт
каталог в этой лаборатории. В конце концов это будет напоминать финиш
каталог , но вы можете перейти к финиш
Если вы хотите: D
Вы можете настроить специфику развертываемости kafka, контролируемого оператором Strimzi, с помощью файла конфигурации YAML.
Убедитесь, что вы находитесь в каталоге начала, и создайте файл kafka.yaml
в вашем любимом редакторе.
ℹ Примечание: из -за Новые несовместимости API , этот файл kafka.yaml отличается от учебника Open Liberty.
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: kafka-cluster spec: kafka: version: 2.5.0 replicas: 1 listeners: - name: plain port: 9092 type: internal tls: false config: offsets.topic.replication.factor: 1 transaction.state.log.replication.factor: 1 transaction.state.log.min.isr: 1 log.message.format.version: 2.5 storage: type: ephemeral zookeeper: replicas: 1 storage: type: ephemeral entityOperator: topicOperator: {} userOperator: {}
ℹ Примечание: проблемы с вим
А в отступление? Попробуйте настроить : установить вставку
Перед вставкой, затем : Установите Nopaste
После того, как ты закончишь.
Теперь давайте развернем Kafka на основе этого файла:
oc apply -f kafka.yaml
Запустите следующие команды для упаковки системы и микросервисов инвентаризации:
mvn -pl models clean install mvn clean package
Теперь давайте создадим Build.yaml
файл:
apiVersion: v1 kind: Template metadata: name: "build-template" annotations: description: "Build template for the system and inventory service" tags: "build" objects: - apiVersion: v1 kind: ImageStream metadata: name: "${APP_NAME}-imagestream" labels: name: "${APP_NAME}" - apiVersion: v1 kind: BuildConfig metadata: name: "${APP_NAME}-buildconfig" labels: name: "${APP_NAME}" spec: source: type: Binary strategy: type: Docker output: to: kind: ImageStreamTag name: "${APP_NAME}-imagestream:1.0-SNAPSHOT" parameters: - description: The application name [system|inventory] name: APP_NAME
Запустите следующие команды для создания объектов для системы и микросервисов инвентаризации:
oc process -f build.yaml -p APP_NAME=system | oc create -f - oc process -f build.yaml -p APP_NAME=inventory | oc create -f -
Наконец, давайте запустим сборки:
oc start-build system-buildconfig --from-dir=system/. oc start-build inventory-buildconfig --from-dir=inventory/.
Далее пришло время управлять развертыванием. Создать Deploy.yaml
файл:
apiVersion: openliberty.io/v1beta1 kind: OpenLibertyApplication metadata: name: system labels: name: system spec: applicationImage: guide/system-imagestream:1.0-SNAPSHOT env: - name: WLP_LOGGING_MESSAGE_FORMAT value: "json" - name: WLP_LOGGING_MESSAGE_SOURCE value: "message,trace,accessLog,ffdc,audit" - name: MP_MESSAGING_CONNECTOR_LIBERTY_KAFKA_BOOTSTRAP_SERVERS value: "[kafka-bootstrap-address]" --- apiVersion: openliberty.io/v1beta1 kind: OpenLibertyApplication metadata: name: inventory labels: name: inventory spec: applicationImage: guide/inventory-imagestream:1.0-SNAPSHOT service: port: 9085 expose: true env: - name: WLP_LOGGING_MESSAGE_FORMAT value: "json" - name: WLP_LOGGING_MESSAGE_SOURCE value: "message,trace,accessLog,ffdc,audit" - name: MP_MESSAGING_CONNECTOR_LIBERTY_KAFKA_BOOTSTRAP_SERVERS value: "[kafka-bootstrap-address]"
Вы заметите, что у этого файла отсутствует значение, [kafka-bootstrap-address]
Анкет Вы можете найти это в конфигурации POD в OpenShift, это должно выглядеть следующим образом: My-Cluster-Kafka-Bootstrap: 9092
Вы можете получить правильное значение, работая:
oc get kafka kafka-cluster -o=jsonpath='{.status.listeners[?(@.type=="plain")].bootstrapServers}{"\n"}'
Заменить [kafka-bootstrap-address]
с новым значением.
Далее разверните приложение, запустив
oc apply -f deploy.yaml
Чтобы получить публичный маршрут, запустите:
oc get routes
Вы увидите выход, похожий на:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD inventory inventory-guide.apps.lights.os.fyre.ibm.com inventory 9085-tcp None
Посетите микросервис инвентаризации, перейдя к следующему URL: http://[host]/systems/systems (убедившись заменить имя хоста значением хоста из вышеуказанной команды.
Поздравляю! Вы только что закончили настройку и развертывание открытого микросервиса Liberty на Red Hat OpenShift!
Оригинал: «https://dev.to/drnugent/deploying-scalable-java-microservices-to-enterprise-kubernetes-using-red-hat-openshift-546b»