Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 22 Следующий »

Тип статьи

Полезные знания

Компетенции

Администратор

Необходимые права

root

Версия платформы

2.24

Статус

БЕТА

Сложность 

легко

Дополнительные сведения

1. Логин в Яндекс Регистре с помощью iam токена


docker login \
         --username iam \
         --password <IAM_TOKEN> \
         cr.yandex

Вместо <IAM_TOKEN> подставляем свой токен вида 

t1.9euelZqSkZmXkszJlsuSy8eWy5ORk-3rnpWaj4uJmc6WnsiLyImVm82Yl8fl8_dEA2hx-e8lWDdX_t3z9wQyZXH57yVYN1f-zef1656VmoydmJTJkIubx8idm5zJmc-O7_0.hw-uRRvhkdkC7gG-scE-fyWbBl2fLQMvOCQZlb-Har-M2Y_OCISA52AA_MqQbVnB4K1Z94cP4ZPncOrZGo8QBQ

Команду вполне возможно придется вводить с sudo, особенно, если run.sh запускает тоже с sudo. Иначе run.sh покажет ошибку авторизации, как будто не видит факта успешного логина.

2. Healthchecks


У трех докер контейнеров есть хелсчеки, это admin, portal and export-service. В некоторых ситуациях, например, при чрезмерной загрузке ресурсов сервера, healthchecks могут вызывать перезапуски этих контейнеров. Ниже пример из platform.yml для увеличения интервалов и кол-ва попыток для принудительного предотвращения перезапуска контейнеров.

Пример из YML
admin:
    image: ${DOCKER_REPO_PREFIX}${ADMIN_TAG}
    healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:80/health"]
        interval: 30s
        timeout: 960s
        retries: 50
        start_period: 40s
    depends_on:
      - proxy
      - mongodb
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - database-backups:/visiology/database_backups
      - hardwareid:/visiology/admin/app/license/keys/hardwareid
      - /docker-volume/admin/portalImages:/visiology/admin/portalImages
      - /docker-volume/admin/useFiscalCalendar:/visiology/admin/useFiscalCalendar
    environment:
      - VPROXY_URL=${PLATFORM_URL:-proxy}
      - POLICY=${POLICY}
    labels:
      component: "admin"
    secrets:
      - MONGO_AUTH_USER
      - MONGO_AUTH_PASSWORD
    << : *deploy_platform
    << : *logging_options
  portal:
    image: ${DOCKER_REPO_PREFIX}${PORTAL_TAG}
    healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:80/health"]
        interval: 30s
        timeout: 960s
        retries: 50
        start_period: 40s
    depends_on:
      - dashboard-viewer
    volumes:
      - /etc/localtime:/etc/localtime:ro
    labels:
      component: "portal"
    << : *deploy_platform
    << : *logging_options

3. Скрипты, упрощающие работу


install-docker-ubuntu.sh | Установка последней версии Docker и Docker-Compose на Ubuntu. После выполнения установки нужно перезайти в терминал.
remove_visiology.sh | Удаление Visiology (сервисы, подсети, тома, образы). Подходит только, если на Docker работает исключительно платформа, т. к. может удалить ваши дополнительные Docker ресурсы.

4. Долгий запуск докер сервисов в закрытом контуре


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

Глубокого исследования в работе этого механизма не проводилось. Есть только некоторые заметки ниже.

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

  2. В ином случае много зависит от инфраструктуры, через что запросы на DNS проходят (фаерволлы, маршрутизаторы). Здесь уже большая вероятность в необходимости ожидания таймаута. В разных средах запуск одного сервера может занимать от секунды до десятка секунд и выше. Если умножить на кол-во Docker сервисов, то такие такое время перезапуска платформы может быть не приемлемо.

  3. По всей видимости при создании сервисов Docker обращается по своим делам в реестр. В случае с платформой на момент написания этой заметки используется Яндекс регистр образов с адресом cr.yandex.


Выбор решения зависит от предпочтений администратора сервера. Универсальных быстрых решения два:

  1. Прописать в /etc/hosts сервера с платформой следующую строчку:

    127.0.0.1 cr.yandex

  2. Добавить параметр к разворачиванию стека --resolve-image never в run.sh. Кусочек скрипта с добавленным флагом ниже:

    eval ${ENVIRONMENT_VARIABLES} docker stack deploy --resolve-image never ${composeFilesString} ${STACK_NAME}

Если для сервера в будущем откроется выход в Интернет (хотя бы к cr.yandex) в том числе для выкачивания Docker образов напрямую из Яндекс регистра, эту запись в hosts естественно нужно убрать.

5. Проверка SMTP


https://adminkit.net/smtp_diag_tool.aspx | Для случаев, если не удается настроить SMTP клиент в платформе, и нужно понять, какие параметры поддерживает почтовый сервер.

6. Список всех опубликованных дашбордов


Для просмотра списка всех опубликованных дашбордов, можно воспользоваться следующим запросом:
GET http://адрес_платформы/admin/api/webAppDashboards

  • Нет меток