Как стать автором
Обновить
55.6

Как развернуть Mattermost на Kubernetes на раз-два-три

Время на прочтение4 мин
Количество просмотров3.4K
Автор оригинала: Ram Iyengar

Mattermost - это решение для обмена сообщениями с открытым исходным кодом, созданное для современных компаний и управляемое с помощью Kubernetes. Mattermost предназначен для одновременного обслуживания десятков тысяч пользователей, распределенных по всему миру. Однако в таких масштабах управление через Kubernetes может стать сложным, поэтому команда Mattermost создала K8s оператор, который помогает автоматизировать процессы установки, обновления и восстановление после сбоев.

С момента своего первого появления в июне 2014 года Kubernetes стал чем-то вроде имени нарицательного, по крайней мере, в кругу администраторов и разработчиков. Платформа для оркестрации контейнеров с открытым исходным кодом позволяет легко решать такие задачи, как балансировка нагрузки, управление секретами и переносимость ПО, и упрощает оркестрацию больших, масштабируемых и распределенных систем.

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

Установка Mattermost на Kubernetes

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

- Кластер Kubernetes.

- kubectl, установленный локально. Подключите kubectl к удаленному кластеру с помощью соответствующей CLI команды. Например, используется кластер на Google Kubernetes Engine:

gcloud container clusters get-credentials cluster-test --zone us-west1-a --project mattermost-test

1. Создайте YAML файл, который будет выступать в роли лицензии для установки.

Это будет общий opaque-тип Kubernetes Secret с определяемой пользователем строкой данных:

Вставьте следующий фрагмент в файл и сохраните его:

apiVersion: v1
kind: Secret
metadata:
  name: mattermost-license
type: Opaque
stringData:
  license: "foo"

2. Создайте файл манифеста установки

Это второй YAML файл, который будет содержать информацию, необходимую для установки.

vi mattermost-installation.yml

Вставьте следующий фрагмент в файл и сохраните его:

apiVersion: installation.mattermost.com/v1beta1
kind: Mattermost
metadata:
  name: mm-demo
spec:
  size: 50users
  ingressName: example-mm-install   
  ingressAnnotations:
	kubernetes.io/ingress.class: nginx
  version: 5.31.0
  licenseSecret: "mattermost-license"

Примечание: Далее следуют шаги по созданию отдельных пространств имен для различных ресурсов в кластере Kubernetes.

3. Установите NGINX контроллер

Первым ресурсом, который необходимо установить, является NGINX контроллер, что можно сделать, выполнив следующую команду:

kubectl apply -f
https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.46.0/deploy/static/provider/cloud/deploy.yaml

4. Используйте Mattermost оператор

Далее следует Mattermost оператор. Создайте пространство имен для Mattermost оператора с помощью следующей команды:

kubectl create ns mattermost-operator

В этом пространстве имен установите пользовательский оператор с помощью данной команды:

kubectl apply -n mattermost-operator -f
https://raw.githubusercontent.com/mattermost/mattermost-operator/master/docs/mattermost-operator/mattermost-operator.yaml

5. Установите базу данных

Любая инсталляция Mattermost требует наличия базы данных. В данном случае будет использоваться база данных MySQL. Чтобы установить ее, сначала создайте пространство имен:

kubectl create ns mysql-operator

Затем установите сам оператор с помощью этой команды:

kubectl apply -n mysql-operator -f
https://raw.githubusercontent.com/mattermost/mattermost-operator/master/docs/mysql-operator/mysql-operator.yaml

6. Установите MinIO

Поскольку в инструменте для совместной работы происходит обмен большим количеством файлов, для хранения и извлечения данных требуется объектное хранилище. Для этого мы установим MinIO, который является нативным объектным хранилищем Kubernetes.

Сначала создайте пространство имен, в котором будет производиться установка:

kubectl create ns minio-operator

Затем установите его с помощью следующей команды:

kubectl apply -n minio-operator -f
https://raw.githubusercontent.com/mattermost/mattermost-operator/master/docs/minio-operator/minio-operator.yaml

7. Создайте пространство имен для Mattermost

Наконец, создайте пространство имен для установки Mattermost с помощью следующей команды:

kubectl create ns mattermost

8. Примените лицензию

Далее выполните применение файла лицензии, созданного в шаге №1, с помощью следующей команды:

kubectl apply -n mattermost -f
/home/ram/mattermost-demo/mattermost-license-secret.yml

9. Завершите установку

Завершите установку, применив манифест установки Mattermost, созданный в Шаге №2, с помощью этой команды:

kubectl apply -n mattermost -f
/home/ram/mattermost-demo/mattermost-installation.yml

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

10. Доступ к установке

Чтобы получить доступ к установке, настройте перенаправление портов с пода на локальную машину с помощью этой команды:

kubectl -n mattermost port-forward svc/mm-demo 8065:8065

Теперь используйте браузер и введите localhost:8065 для доступа к установке. 

Все готово! Вот скриншот первых шагов с новой установкой Mattermost, запущенной на удаленном кластере Kubernetes.

Заключение

Хотите узнать больше о Mattermost на Kubernetes?

Чтобы обсудить эту тему, зайдите на портал нашего сообщества

Если вы хотите узнать больше о том, как присоединиться к проекту Mattermost с открытым исходным кодом, узнайте о множестве способов внести свой вклад.

Этот пост написан в связи с 7-й годовщиной начала проекта Kubernetes. За этот короткий промежуток времени он стал вторым после Linux по популярности проектом с открытым исходным кодом! Мы искренне надеемся, что этот пост вдохновит вас на внедрение более открытой и безопасной инфраструктуры для вашей компании - как для вычислений, так и для совместной работы.

Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии0

Публикации

Информация

Сайт
www.fgts.ru
Дата регистрации
Дата основания
Численность
31–50 человек
Местоположение
Россия