Фильтры

Всем привет!

 

Продолжением освещать вас жизненными примерами по разворачиванию сервиса Exchange Listener. Если вы пропустили прошлую публикацию, то рекомендуем также с ней ознакомиться - https://community.terrasoft.ru/articles/1-realnyy-primer-po-razvertyvaniyu-servisa-exchange-listener-s-ispolzovaniem-kubernetes.

 

На этот раз поделился подробной инструкцией с нами пользователь Еремеев Игорь Юрьевич (ссылка на профиль - https://community.terrasoft.ru/user/196420). Данная инструкция полезна тем, что в ней предоставлены наглядные скриншоты и решение по ошибкам, которые могут возникнуть в процессе развертывания.

(!) Данная инструкция процитирована и зафиксирована в таком виде, в каком нам передали с небольшими изменениями.

 

Задача поднять Кластер (Cluster) Kubernetes

 

Kubernetes — нишевое решение под конкретные проекты.

Kubernetes средство оркестрации (управления) контейнерами Docker. Это инструмент для их автоматического запуска, выделения ресурсов, контроля состояния, обновления.

 

Системные требования

Устанавливаем на виртуальных машинах:

  • мастер нода – 1 виртуальные машины - 2 cpu и 4 gb ram
  • рабочие ноды – 2 виртуальная машина - 2 cpu и 4 gb ram

 

Структура кластера

 

 

 

 

 

 

 

 

Примечание:

  • Виртуальная машина 1 Поколение;
  • Образ CentOS-7-x86_64-NetInstall-2003;
  • Пользователь root, 123456qQ;

Необходимые условия:

  • Установлена ВМ (прим. виртуальная машина) Centos 8;
  • Отключён Firewall, своппинг, SELinux;
  • Для дальнейших шагов необходим неограниченный доступ в Интернет.

Подготовим 1 Образ, далее просто его скопируем под  3 ВМ (см инструкцию 0. Kubernetis  преднастройка VM CentOS)

 

Далее делаем на всех нодах

  1. Приведем имена в порядок
hostnamectl set-hostname master-node
hostnamectl set-hostname node-1
hostnamectl set-hostname node-2
  1. Пропишем внутренний DNS

задайте имя хоста системы и обновите DNS в файле / etc / hosts

cat <<EOF>> /etc/hosts
192.168.25.182 master-node
192.168.25.30 node-1 worker-node-1
192.168.25.170 node-2 worker-node-2
EOF
  1. Установите Docker-CE на CentOS 8
  • Сначала необходимо добавить репозиторий Docker.
  • Также установите пакет containerd.io , который доступен в качестве демона, который управляет полным жизненным циклом контейнера его хост-системы, от передачи и хранения образа до выполнения и контроля контейнера, до низкоуровневого хранилища, сетевых вложений и далее.
  • Команды под учетной записью root запускаю сразу весь пакет,  Ставим на всех ВМ
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm -y
dnf install docker-ce -y
systemctl enable docker
systemctl start docker

4. Установите Kubernetes (Kubeadm)

4.1. Необходимо добавить репозитории Kubernetes вручную

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

 

4.2. установить пакет kubeadm

 

dnf install kubeadm -y
systemctl enable kubelet
systemctl start kubelet 

 

Все что выше делаем на всех ВМ.

 

5. на мастере  выполняем команды:

5.1.

 

kubeadm init --pod-network-cidr=10.244.0.0/16

 

(!) Важно сохраняем результат

 

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad \    --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

если потеряли токен то можно запросить

 

kubeadm token list
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 5.2
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

 

5.3. Устанавливаем Flannel:
 

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml

 

 

5.4. . Вводим команду для возможности запуска контейнеров на текущей машине:

 

kubectl taint nodes --all node-role.kubernetes.io/master-

 

Делаем reboot – много всего поставлено

 

 6. Проверяю состояние подов:

 

kubectl -n kube-system get pods

Все работает

 

7. Устанавливаем Helm:

wget https://get.helm.sh/helm-v3.3.0-rc.1-linux-amd64.tar.gz
tar xzvf helm-v3.3.0-rc.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm

 

И подключаем репозиторий (возьмем самый популярный) и делаем update

 

helm repo add stable https://kubernetes-charts.storage.googleapis.com/

helm repo update

 

Делаем бэкап своих виртуальных машин.

Результат у нас создан кластер из 1 ВМ, созданы ВМ на которой установлен только Докер.

 

8. Устанавливаем Redis:

 

helm repo update

helm install --namespace default --set usePassword=false --set=slave.persistence.enabled=false --set master.persistence.enabled=false --set cluster.enabled=false redis stable/redis

 

используем --namespace default

 

Получили:

 

To connect to your Redis server:

1. Run a Redis pod that you can use as a client:

   kubectl run --namespace default redis-client --rm --tty -i --restart='Never' \

   --image docker.io/bitnami/redis:5.0.7-debian-10-r32 -- bash

2. Connect using the Redis CLI:

   redis-cli -h redis-master

To connect to your database from outside the cluster execute the following commands:

    kubectl port-forward --namespace default svc/redis-master 6379:6379 &

    redis-cli -h 127.0.0.1 -p 6379

 

Результат.

 

 

 

 

9. Устанавливаем Exchange Listener.

 

Нам потребуется  ip-адрес redis-master: XX.XXX.233.155 (см. скриншоты)

 

Качаем последний актуальный дистрибутив (на данный момент 0.6.9):

wget http://ftp.bpmonline.com/support/downloads/Exchangelistener/exchangelistener-0.6.9.tgz

helm install --set env.host=XX.XXX.233.155 --set service.type=NodePort --set service.nodePort=30001 --set apiVersion=apps/v1 --namespace default elistener exchangelistener-0.6.9.tgz

 

 

default - namespace, который использовался в пункте 11.

elistener - произвольное название нашего сервиса.

exchangelistener-0.6.9.tgz - путь к скачанному дистрибутиву.

Порт не обязательно должен быть 30001. Допустимый диапазон 30000-32767.

На этом минимальная настройка сервиса на стороне сервера завершена.

 

10. Проверяем поды сервиса

kubectl get pods

 

Проверяем доступность сервиса Exchange Listener.

telnet: -

telnet 192.168.25.182 30001

 

Где:

192.168.25.182 - ip-адрес нашей linux-машины,

30001 - порт сервиса Exchange Listener, выбранный при установке на 12 шаге.

Если соединение проходит - открываем веб-браузер (желательно сразу на машине с Creatio) и вводим в адресную строку http://192.168.25.182:30001/api/listeners/status

 

 

Включим в кластер еще 2 ВМ

 

(команду kubeadm init --pod-network-cidr=10.244.0.0/16 не вводим)

- Node-1

Вводим ключ-команду

 

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad     --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

если потеряли токен то можно запросить

 

kubeadm token list

 

- Проверяем поды на master-машине (их должно стать больше):

 

kubectl -n kube-system get pods

 

- Node-2

Вводим ключ-команду

kubeadm join 192.168.25.182:6443 --token z86i8r.u6mmy6adnkmp4iad     --discovery-token-ca-cert-hash sha256:8104a99fe76b167b65d5d450467ec14fd60b973db9f97a40e81c90cc7ade73b8

 

- На мастере проверяем

 

kubectl get node

 

kubectl get svc

 

 

kubectl get pods

 

 

Какие команды могут помочь при решении проблем:

 

Почему-то не было доступа из внешнего IP к порту 30001, где развернут сервис. и были выполнены следующие команды:

ufw allow 30001 - команда конкретно firewall ubuntu. К другим дистрибутивам вероятнее всего не подойдет (возможно только если к Mint, т.к. ядро тоже самое). 

iptables -I INPUT -p tcp --dport 30001 -j ACCEPT - уже более распространенный вариант. 

 

Команды для просмотра логов. Примеры:

 

kubectl logs POD_NAME

kubectl logs REDIS_NAME-api-0

 

kubectl logs  elistener-api-0

kubectl logs  elistener-api-1

kubectl logs redis-master-0

 

log4net:ERROR Could not create Appender [ExchangeListenerGelfAmqpAppender] of type [Gelf4Net.Appender.GelfAmqpAppender, Gelf4Net.AmqpAppender]. Reported error follows.
RabbitMQ.Client.Exceptions.BrokerUnreachableException: None of the specified endpoints were reachable ---> RabbitMQ.Client.Exceptions.ConnectFailureException: Connection failed --->

Означает, что он не может Rabbit не может достучаться до Graylog (мониторинг логов). В данном случае у вас не настроен Graylog. Но это не должно блокировать работу. Можно ориентировать на вот это Gelf4Net (он пишет в Rabbit).

Но ниже по логу должно быть видно следующее:
Hosting environment: Production Content root path: /app Now listening on:
http://[::]:80 Application started. Press Ctrl+C to shut down.

Если это так, то значить сервис запущен и теперь вам нужно проверить доступность и статус сервиса.
А после провести настройку на стороне Creatio.

Нравится

Поделиться

1 комментарий

Теперь k8s наша общая боль) 

Показать все комментарии

Представляем обзор новых возможностей и полезных изменений, реализованных в Studio Creatio, free edition в августе 2020.

РЕГИСТРАЦИЯ И ПРОФИЛЬ

 

  •  Добавлена возможность указать роль пользователя сразу при отправке ему приглашения. Изменить роль пользователя можно на странице настроек организации, если пользователь уже принял приглашение. Если в организации всего один пользователь с ролью “Администратор”, то изменить ее можно будет только после того, как роль администратора будет назначена другому пользователю.

КОНВЕРТАЦИЯ ОПИСАТЕЛЬНЫХ ПРОЦЕССОВ В ИСПОЛНЯЕМЫЕ

  • Появилась возможность конвертировать описательные процессы из Studio free в исполняемые процессы в другие продукты Creatio. Экспортируйте бизнес-процесс в файл формата *.bpmn, а затем импортируйте в нужный продукт Creatio для дополнительной настройки и использования. Импорт можно выполнить по команде “Импорт из *.bpmn” меню действий дизайнера процессов или перетащить файл в рабочую область дизайнера. Так можно переносить процессы c любых платформ, которые поддерживают выгрузку в формат *.bpmn. Подробнее об этом читайте в статьях “Импорт и экспорт бизнес-процессов” и “Импорт процессов”.

     
  • При импорте описательного процесса из Studio free в основное приложение в импортированном процессе сохраняется ссылка на его описание из Studio free. Это позволяет быстро вернуться к описанию процесса в ходе его настройки. Также ссылку на описание процесса можно указать вручную на панели настроек процесса в дизайнере.

ДИЗАЙНЕР ПРОЦЕССОВ

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

  •  
  • При изменении формы или положения потока на диаграмме процесса его подпись автоматически перемещается за потоком и отображается рядом с ним.
  • При удалении с диаграммы процесса элемента, который имеет входящие и исходящие потоки, все его потоки привязываются к оставшимся элементам.
  • Поддержана логика работы элементов — логических операторов. Теперь логические операторы [Исключающее “ИЛИ”] и [Включающее “ИЛИ”] можно связать с другими элементами только с помощью условных потоков и потоков по умолчанию. А для элементов [Исключающее “ИЛИ” по событиям] и [Логическое “И”] можно использовать только потоки управления. Больше информации доступно в статье Логические операторы”.  

ПРОИЗВОДИТЕЛЬНОСТЬ

  • Повышена скорость загрузки диаграмм с большим количеством элементов.

                                                         Начать работу >>>

 

Нравится

Поделиться

0 комментариев
Показать все комментарии

Друзья, приглашаем вас на онлайн-встречу «ROADMAP 7.17: новинки и планы по развитию Creatio», которую мы анонсировали на презентации продуктовой стратегии Террасофт 2020-2023 в июле!

Не пропустите — мы покажем самые интересные обновления, которые уже появились в продуктах Creatio, а также расскажем о том, чего стоит ждать от осеннего релиза 7.17.

Больше о событии — по ссылке.

До встречи в онлайне! 

Нравится

Поделиться

0 комментариев
Показать все комментарии

Все знают одну особенность программистов – мы всегда хотим использовать лучшие инструменты, иметь самое быстрое железо и прорабатывать архитектуру так, чтобы быть готовыми вырасти в over900 раз за ночь. А если это еще и что-то новенькое, то бизнес вполне может получить под капотом MongoDB+Qt для задачи десктопного калькулятора.

Но давайте взглянем на это с точки зрения бизнеса – в каком случае действительно целесообразно использовать технологии высокой нагрузки и какие они вообще бывают?

Полный текст статьи с примерами нагрузки и описанием архитектуры решения Loyalty Creatio

Нравится

Поделиться

0 комментариев
Показать все комментарии

Студия CRM проектов Be Tech разработала коннектор Creatio к мессенджеру JivoSite.  

История переписки и чаты с Jivosite после завершения диалога оператором, автоматически зафиксируются в CRM Creatio. 

В CRM создается новый контакт или чаты привязываются к созданному ранее контакту.

В самом JivoSite есть возможность подключать различные каналы коммуникации - Viber, Facebook Messenger, Telegram, онлайн чат на сайте. Все чаты с этих каналов так же передаются в CRM Creatio. 

В функционал коннектора добавлена возможность запустить общение с контактом по стандартному бизнес процессу в компании пользователя. Например создав на основании чата лид, продажу или же сформировав обращение в службу поддержки.

Аналитику и дашборды по KPI сотрудников ответственных за коммуникацию по этим каналам можно выстраивать стандартными способами в CRM. Например скорость обработки обращений операторами, количество обращений по каналам чтобы понимать, на какой канал необходимо больше ресурсов, количество чатов за оператором.

Полученные в CRM данные дадут возможность эффективно управлять качеством коммуникаций с вашими клиентами, получать лиды и взращивать их потребность.

И самое главное - с коннектором к Creatio вы больше не пропустите ни одного обращения.

Запросить демонстрацию коннектора можно здесь - welcome@btbpm.com  

Нравится

Поделиться

8 комментариев

А в чем был смысл делать аналог нашего коннектора https://marketplace.terrasoft.ru/app/konnektor-k-onlayn-chatu-jivosite ? Чем он отличается?

Даже инструкция по тестированию соединения аналогична нашей)

Если бы он еще и бесплатный был - цены бы ему не было :)

Сидоров Александр Валерьевич пишет:
А в чем был смысл делать аналог

Для устранения фатального недостатка™. wink

Зверев Александр,

Какого?)

Александр О,

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

Сидоров Александр Валерьевич пишет:

Какого?)

В недавней статье была в конце об этом ссылка.

Зверев Александр,

Засчитаноsmiley

Показать все комментарии