Учебники

OpenShift — Кластеры

OpenShift использует два метода установки для настройки кластера OpenShift.

  • Метод быстрой установки
  • Расширенный метод настройки

Настройка кластера

Метод быстрой установки

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

Интерактивный метод

$ atomic-openshift-installer install

Это полезно, когда вы хотите запустить интерактивную установку.

Метод автоматической установки

Этот метод используется, когда требуется установить метод автоматической установки, при котором пользователь может определить файл конфигурации yaml и поместить его в ~ / .config / openshift / с именем installer.cfg.yml. Затем можно выполнить следующую команду для установки тега –u .

$ atomic-openshift-installer –u install

По умолчанию он использует файл конфигурации, расположенный в ~ / .config / openshift / . Ansible, с другой стороны, используется в качестве резервной копии установки.

version: v2
variant: openshift-enterprise
variant_version: 3.1
ansible_log_path: /tmp/ansible.log

deployment:
   ansible_ssh_user: root
   hosts:
   - ip: 172.10.10.1
   hostname: vklnld908.int.example.com
   public_ip: 24.222.0.1
   public_hostname: master.example.com
   roles:
      - master
      - node
   containerized: true
   connect_to: 24.222.0.1
   
   - ip: 172.10.10.2
   hostname: vklnld1446.int.example.com
   public_ip: 24.222.0.2
   public_hostname: node1.example.com
   roles:
      - node
   connect_to: 10.0.0.2
   
   - ip: 172.10.10.3
   hostname: vklnld1447.int.example.com
   public_ip: 10..22.2.3
   public_hostname: node2.example.com
   roles:
      - node
   connect_to: 10.0.0.3

roles:
   master:
      <variable_name1>: "<value1>"
      <variable_name2>: "<value2>"
   node:
      <variable_name1>: "<value1>"

Здесь у нас есть ролевая переменная, которую можно определить, если вы хотите установить какую-то конкретную переменную.

После этого мы можем проверить установку с помощью следующей команды.

$ oc get nodes
NAME                    STATUS    AGE
master.example.com      Ready     10d
node1.example.com       Ready     10d
node2.example.com       Ready     10d

Расширенная установка

Расширенная установка полностью основана на конфигурации Ansible, в которой присутствует полная конфигурация хоста и определение переменных, относящихся к конфигурации мастера и узла. Это содержит все детали, касающиеся конфигурации.

Как только у нас есть настройки и книга воспроизведения готова, мы можем просто запустить следующую команду для настройки кластера.

$ ansible-playbook -i inventry/hosts ~/openshift-ansible/playbooks/byo/config.yml

Добавление хостов в кластер

Мы можем добавить хост в кластер, используя —

  • Инструмент быстрой установки
  • Расширенный метод настройки

Инструмент быстрой установки работает как в интерактивном, так и в неинтерактивном режиме. Используйте следующую команду.

$ atomic-openshift-installer -u -c </path/to/file> scaleup

Формат масштабирования внешнего вида конфигурационного файла приложения можно использовать для добавления как главного, так и узла.

Расширенный метод настройки

В этом методе мы обновляем файл хоста Ansible, а затем добавляем новый узел или сведения о сервере в этот файл. Файл конфигурации выглядит следующим образом.

[OSEv3:children]
masters
nodes
new_nodes
new_master

В том же файле Ansible hosts добавьте переменные детали относительно нового узла, как показано ниже.

[new_nodes]
vklnld1448.int.example.com openshift_node_labels = "{'region': 'primary', 'zone': 'east'}"

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

$ ansible-playbook -i /inventory/hosts /usr/share/ansible/openshift-ansible/playbooks/test/openshift-node/scaleup.yml

Управление кластерными журналами

Журнал кластера OpenShift — это не что иное, как журналы, генерируемые с главного и узлового компьютеров кластера. Они могут управлять любым видом журнала, начиная с журнала сервера, главного журнала, журнала контейнера, журнала модуля и т. Д. Для управления журналом контейнера имеется несколько технологий и приложений.

Немногие из перечисленных инструментов доступны для управления журналами.

  • Fluentd
  • ELK
  • Kabna
  • Nagios
  • Splunk

Стек ELK — этот стек полезен при попытке собрать журналы со всех узлов и представить их в систематическом формате. Стек ELK в основном делится на три основные категории.

ElasticSearch — в основном ответственный за сбор информации из всех контейнеров и размещение ее в центральном месте.

Fluentd — Используется для подачи собранных бревен в двигатель контейнера поиска эластичного материала.

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

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

Лог Диагностика

OpenShift имеет встроенную команду oc adm dignostics с OC, которую можно использовать для анализа множественных ошибок. Этот инструмент можно использовать от мастера в качестве администратора кластера. Эта утилита очень полезна для устранения неполадок и выявления известных проблем. Это работает на главном клиенте и узлах.

При запуске без каких-либо агентов или флагов, он будет искать файлы конфигурации клиента, сервера и узлов и использовать их для диагностики. Диагностику можно запустить индивидуально, передав следующие аргументы:

  • AggregatedLogging
  • AnalyzeLogs
  • ClusterRegistry
  • ClusterRoleBindings
  • ClusterRoles
  • ClusterRouter
  • ConfigContexts
  • DiagnosticPod
  • MasterConfigCheck
  • MasterNode
  • MetricsApiProxy
  • NetworkCheck
  • NodeConfigCheck
  • NodeDefinitions
  • ServiceExternalIPs
  • UnitStatus

Можно просто запустить их с помощью следующей команды.

$ oc adm diagnostics <DiagnosticName>

Обновление кластера

Обновление кластера включает в себя обновление нескольких компонентов внутри кластера и получение кластера, обновленного новыми компонентами и обновлениями. Это включает в себя —

  • Обновление основных компонентов
  • Обновление узловых компонентов
  • Обновление политик
  • Модернизация маршрутов
  • Обновление потока изображений

Для того, чтобы выполнить все эти обновления, нам нужно сначала получить быстрые установщики или утилиты на месте. Для этого нам нужно обновить следующие утилиты —

  • атомно-OpenShift-Utils
  • атомно-OpenShift-Excluder
  • атомно-OpenShift-докер-Excluder
  • пакет etcd

Перед началом обновления нам нужно сделать резервную копию etcd на главном компьютере, что можно сделать с помощью следующих команд.

$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd
$ etcdctl backup \
   --data-dir $ETCD_DATA_DIR \
   --backup-dir $ETCD_DATA_DIR.bak.<date>

Обновление основных компонентов

В OpenShift master мы запускаем обновление, обновляя файл etcd, а затем переходим к Docker. Наконец, мы запускаем автоматический исполнитель, чтобы получить кластер в нужном положении. Однако перед началом обновления нам нужно сначала активировать атомарные пакеты openshift на каждом из мастеров. Это можно сделать с помощью следующих команд.

Шаг 1 — Удалить пакеты atomic-openshift

$ atomic-openshift-excluder unexclude

Шаг 2 — Обновите etcd на всех мастерах.

$ yum update etcd

Шаг 3 — Перезапустите службу etcd и проверьте, успешно ли она началась.

$ systemctl restart etcd
$ journalctl -r -u etcd

Шаг 4 — Обновите пакет Docker.

$ yum update docker

Шаг 5 — Перезапустите сервис Docker и проверьте, правильно ли он работает.

$ systemctl restart docker
$ journalctl -r -u docker

Шаг 6 — После завершения перезагрузите систему с помощью следующих команд.

$ systemctl reboot
$ journalctl -r -u docker

Шаг 7. Наконец, запустите atomic-execute, чтобы вернуть пакеты в список исключений yum.

$ atomic-openshift-excluder exclude

Нет такого принуждения для обновления политики, его нужно обновить, только если рекомендуется, что можно проверить с помощью следующей команды.

$ oadm policy reconcile-cluster-roles

В большинстве случаев нам не нужно обновлять определение политики.

Обновление узловых компонентов

После завершения основного обновления мы можем приступить к обновлению узлов. Следует иметь в виду, что период обновления должен быть коротким, чтобы избежать каких-либо проблем в кластере.

Шаг 1 — Удалите все атомарные пакеты OpenShift со всех узлов, на которых вы хотите выполнить обновление.

$ atomic-openshift-excluder unexclude

Шаг 2 — Затем отключите планирование узлов перед обновлением.

$ oadm manage-node <node name> --schedulable = false

Шаг 3 — Реплицируйте все узлы с текущего хоста на другой хост.

$ oadm drain <node name> --force --delete-local-data --ignore-daemonsets

Шаг 4 — Обновите настройку Docker на хосте.

$ yum update docker

Шаг 5 — Перезапустите службу Docker, а затем запустите узел службы Docker.

$systemctl restart docker
$ systemctl restart atomic-openshift-node

Шаг 6 — Проверьте, правильно ли они запущены.

$ journalctl -r -u atomic-openshift-node

Шаг 7 — После завершения обновления перезагрузите узел компьютера.

$ systemctl reboot
$ journalctl -r -u docker

Шаг 8 — Снова включите планирование на узлах.

$ oadm manage-node <node> --schedulable.

Шаг 9 — Запустите исполнитель atomic-openshift, чтобы вернуть пакет OpenShift на узел.

$ atomic-openshift-excluder exclude

Шаг 10 — Наконец, проверьте, все ли узлы доступны.