こんにちは、TOPGATE でインフラエンジニア兼プロジェクトマネージャをやっています堤です。
前回の記事に引き続き Rancher を取り上げたいと思います。
【前回】Rancher 2.3 を使って GKE を構築してみた
今回は表題の通り、プロジェクト管理ツールである Redmine を Rancher を使って GKE 上に構成したいと思います。
Rancher には、Catalog という機能があります。こちらは、Kubernetes のパッケージ管理システムの一つである Helm を用いてアプリケーションのデプロイを行います。この機能を用いることで、メジャーな OSS のアプリ(WordPress、Nginxなど)なら、簡単に GKE 上にデプロイすることができます。
1. Project/Namespace
アプリケーションをデプロイする前に、デプロイ先の Project と Namespace を設定します。これは必須の設定ではありませんので、すぐに試したい方は、読み飛ばしてい頂いて結構です。
Namespace(名前空間)とは、 Kubernetes 機能の一つです。簡単にいうと、ひとつの物理的な Kubernetes クラスタ上に、仮想的なクラスタを作って、分割・グルーピングするための機能です。Namespace ごとにアクセスできるユーザを設けたり、 リソース(CPU,メモリなど)のクオータを設定することもできます。詳細は以下を御覧ください。
あと、Project は、Rancher 特有の機能です。 上記の Namespace を複数束ねる機能といった機能と考えてください。Namespace と同様に、ユーザの紐付けやリソースのクオータの設定もできます。この記事では詳細は触れません。※参考:Projects and Namespaces
Project の追加
Project を一つ追加します。今回は例として、 Osaka
という名前で作ります。
Namespace の追加
次に、 Namespace を追加します。今回は Redmine
という Namespace を作ります。今回は、特にクオータの設定などは行いません。
2. Catalog の設定
次に Catalog の設定を行います。Rancher 構築直後は、Redmine が含まれている helm が無効になっているので有効にします。ついでに、helm-incubator も有効にします。
- helm: helm が作成した Chart 安定版
- helm-incubator: helm が作成した Chart 非安定版
3. アプリケーション(Redmine)のデプロイ
3-1. カタログより Redmine を起動させる
Catalog の設定が完了したら、アプリケーションのデプロイに入りましょう。アプリケーションのデプロイはとても簡単です。【 クラスタ名 】→【 プロジェクト名 】→【 Apps 】
のメニューを開き、Launch を押します。
次に一覧から Redmine を選択します。
すると、以下のページが表示されます。Detailed Description
を開くと、アプリの概要やパラメータの意味が書かれていますので、一読しておきましょう。
今回は、Redmine を日本語で入れたいので Answers のところで、「redmineLanguage」を「ja」に設定します。その他は、デフォルト値のままでデプロイします。そして、「Launch」を押して Redmine のデプロイを開始します。
しばらくすると(1〜2分程度)、以下の画面のようにデプロイが完了し Active となります。
3-2. Redmine へのログイン
接続先情報(ユーザ名、パスワード)
【 クラスタ名 】→【 プロジェクト名 】→【 Apps 】→【 Redmine 】
を開きます。一番上の Notes
を開くと、説明書きが書かれています。
ユーザ名は user と設定されており、パスワードはランダムな文字列が設定されております。パスワードを取得するには、Notes にかかれている通りのコマンドを実行する必要があります。
echo Password: $(kubectl get secret --namespace redmine redmine -o jsonpath="{.data.redmine-password}" | base64 --decode)
コマンドの実行は、実は Rancher の UI を使って実行することができます。【クラスタ名】→【Cluster】
の画面に移動すると、右上に Launch kubectl
ボタンがあるので、これを押すと CLI 画面が出てきます。そこに、上記のコマンドを実行するとパスワードが表示されます。
サーバ IP アドレスの取得
【 クラスタ名 】→【 プロジェクト名 】→【 Apps 】→【 Redmine 】
を開きます。 Endpoints にサーバのIPアドレスが表示されていますので、これで接続すると Redmine に接続できます。
Redmineにログイン
ログイン画面を立ち上げます。
そして先程取得したアカウントでログインすると以下のようになります。user アカウントは、初期値の言語が英語になっているので、ログインすると英語になってしまいます(笑
以上です。
Rancher の雰囲気は伝わったのではないかと思います。
今後も、Rancher を積極的に使って、気づいたことがあれば Qiita に投稿していきたいと思います。最後まで読んでいただきましてありがとうございます。