21:00概要チャットツールであるMattermostをKubernetesに配置する方法を紹介します。1.8方法Mattermostは、Podを作り直したりしたときにデータを残しておくために永続化の設定をする必要があります。永続化しておくデータとして、投稿されたファイルやMattermostの設定があります。その前段階として、データベースを用意しておく必要があります。以上のことから、流れとしてはデータベースの作成、ストレージの用意、Mattermostの配置のようになります。データベースの作成Mattermostでは、データベースとしてMySQLかPostgreSQLを選べます。今回は、PostgreSQLの方が推奨されているということで、PostgreSQLでデータベースを用意するとします。データベースの作成についてはここでは扱いません。次の作業に進む前に、PostgreSQLでデータベースを作成し、そのデータベース名、PostgreSQLにアクセスするためのユーザ名とパスワードを覚えておいてください。ストレージの用意ストレージの用意のために、PersistentVolumeとPersistentVolumeClaimを使います。ここでは、nfsを使う場合の例を示しますが、他のものを使うのであれば適当な値で書き換えてください。投稿されたファイルを置くためのストレージと設定情報を置くためのストレージの2つのPersistentVolumeを用意します。最初に、投稿されたファイルを置くためのストレージを用意するためのPersistentVolumeのyamlです。***PersistentVolumeClaimのyamlです。mattermost-pv次に、設定情報を置くためのストレージを用意するPersistentVolumeのyamlです。***PersistentVolumeClaimのyamlです。mattermost-config-pvこれらのyamlを元にストレージを用意しましょう。Mattermostの配置では、Mattermostの配置します。配置はDeploymentでします。mattermost-config-pvc追加しなければならない情報として、環境変数としてデータベースに関する設定を書く必要があります。DB_HOSTには、PostgreSQLにアクセスするためのホスト名、MM_USERNAMEにはユーザ名、MM_PASSWORDにはユーザ名に対するパスワード、MM_DBNAMEにはデータベース名を書きましょう。これを元に、MattermostのDeploymentを作成すれば、Mattermostが動作します。外部からアクセスできるようにするには、Serviceを用意する必要があります。ここでは、Kubernetes内部に公開するClusterIPの例を示します。mattermostMattermostは8065番ポートで公開されているので、そのポートを公開します。まとめ当初、設定ファイルの永続化をしておらず、Mattermostにアクセスして設定を終えた後にコンテナを一度作り直したら、設定が消えていたということがありました。設定に関してもデータの永続化を忘れないようにしましょう。