こんちには、サイオステクノロジーの角川です。
Kubernetes環境でアプリケーションをデプロイする際はYAML形式で記述されたマニフェストファイルを作成し、
kubectlコマンドなどを用いて適用をおこなうのが一番簡易な方法です。
しかし、システムやアプリケーションが大規模になったり、複数のアプリケーションを運用していくにあたり同じような役割で設定値だけが異なるマニフェストファイルが増え管理が煩雑になっていきます。
そこでHelmというパッケージマネージャーを利用することでマニフェストの管理やデプロイ作業などを簡素化することが出来ます。
Helmを使ってWordpressをデプロイしてみよう
Helmの使い方を說明するにあたりHelmを使ってKubernetes上にWordPressをデプロイしてみます。
Helmではアプリケーションの動作に必要な複数のマニフェストをChartという単位にまとめます。
今回はこのWordPressのChartをインストールする手順を例にHelmについてご紹介します。
Helmを使わずにWordPress環境を構築する場合、以下の設定が記載されたマニフェストファイルが必要になります。
- WordPressコンテナやデータベースコンテナの起動設定
- WordPressコンテナからデータベースコンテナへの接続設定
- データベースストレージの設定
- データベースのパスワードの設定
などがあります。
その他にも多くの必要な設定があり、その分マニフェストファイルが必要となります。
WordPressのChartはこれらがひとまとまりになっており、Chartをインストールすることで簡易な手順でWordpressを利用することが出来ます。
Helmクライアントのインストール
まずはHelmのクライアントをインストールします。
公式ドキュメントをご覧いただき、環境に合わせてインストールをおこなってください。
WordPressのHelm Chartをインストール
WordPressのChartはBitnami社が提供しているものを利用します。
Chartのインストールの前に事前準備としてHelmリポジトリを追加します。
Bitnami社提供するHelmリポジトリを追加
helm repo add bitnami https://charts.bitnami.com/bitnami
追加したリポジトリの確認
helm repo list
以下のような表示になっていればリポジトリが追加されています。
$ helm repo list NAME URL bitnami https://charts.bitnami.com/bitnami $
Helmリポジトリを最新版へ更新
helm repo update
Chartのインストール
以下を実行してWordPressのChartをインストールします。
helm install wordpress-sample bitnami/wordpress
ここではwordpress-sample
という任意の名前(Release名)をつけてインストールをおこなっています。
Chartインストール後の確認
以下を実行してインストールが完了しているか確認します。
helm list
表示結果例
$ helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION wordpress-sample default 1 2022-08-15 00:00:00.000000 +0900 JST deployed wordpress-15.0.12 6.0.1 $
STATUSがdeployed
となっていればインストールが完了しています。
kubectl get pod
を実行してPodが起動していることも確認してください。
ブラウザから確認
kubectl get service
を実行してEXTERNAL-IPに表示されているアドレスをブラウザで開き、WordPressのページが表示出来ているか確認してください。
ブラウザでアクセスすると以下のようにWordpressのページが表示されるようになっているはずです。
以下の手順によってWordpressの管理画面へのアクセスも可能です。
EXTERNAL-IPに表示されているアドレスに/admin
をつけて以下のようなURLへアクセスすることで管理画面のページへアクセス出来ます。
http://127.0.0.1/admin
※127.0.0.1
の部分はご自身の環境に合わせて変更してください。
ユーザ名はデフォルトでuser
、パスワードは以下のコマンドで取得することが可能です。
kubectl get secret --namespace default wordpress-sample -o jsonpath="{.data.wordpress-password}" | base64 -d
ログイン後、以下のようなWordpressのダッシュボードが表示されるはずです。
最後に
今回はHelmとはどういったものかをご紹介するため、まずは動かしてみるというところを重点的に説明をおこないました。
次回以降はHelmのコマンドの使い方などより便利に使える方法などをご紹介出来ればと思います。