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

Kate

Administrator
Команда форума
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
7d851f4d7b6e8dc5a4acfd4b49f0fb54.png

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
1e477450a5e89c46664707b6f932fc6b.png

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

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

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

kubectl apply -n mattermost-operator -f
bd3fdca64ff915104ed3e7dd3cc14bc4.png

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

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

kubectl create ns mysql-operator
Затем установите сам оператор с помощью этой команды:

kubectl apply -n mysql-operator -f
ceb7f707cc65f72b1bd2fc00589396dc.png

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

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

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

kubectl create ns minio-operator
Затем установите его с помощью следующей команды:

kubectl apply -n minio-operator -f
909c2050d338963f787e3a9f0891983a.png

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
ef2dd00da69a9230076ca276147295a2.png

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

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

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

kubectl -n mattermost port-forward svc/mm-demo 8065:8065
Теперь используйте браузер и введите localhost:8065 для доступа к установке.

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

e76a0d8009835f88de8e2882b0f14fe7.gif

Заключение​


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

 
Сверху