ブログに戻る

Helmを使用したKubernetes上でのWordPressとMySQLのセットアップ

Helmを使用したKubernetes上でのWordPressとMySQLのセットアップ

Kubernetes は、スケーラブルで高可用性を持つアプリケーションをデプロイするための標準的な方法となっています。Kubernetesを使用すると、開発者は必要に応じてインスタンスを迅速に起動および停止し、コンテンツをスムーズに配信できます。Kubernetesの詳細については、詳細なガイド「Getting to Know Kubernetes.

Helm は、Kubernetesにアプリケーションをインストールするために使用される非常に人気のあるパッケージマネージャーです。Helmは、Kubernetesクラスター上でアプリケーションをデプロイおよび管理し、そのプロセスを簡素化することを目的としています。また、パッケージ化されたKubernetes用のすぐに使えるアプリケーションへのアクセスも提供します。これらは チャート と呼ばれます。KubernetesとHelmに精通していることは、DevOpsスペシャリストのスキルセットにおいて重要な強みとなります。

WordPress は、最も人気のあるコンテンツ管理システム(CMS)の1つです。これと MySQL データベースを組み合わせることで、高性能で拡張性の高いWebアプリケーションが実現します。MySQLを外部に保持することで、より多くのアプリケーションがそれぞれのユースケースで同じデータベースを活用できるようになります。

この投稿では、Helmパッケージマネージャーを使用してKubernetes上にWordPressをインストールし、それらを外部のMySQLサーバーに接続します。始めましょう!

前提条件

このチュートリアルを正常に完了するには、以下のソフトウェアのセットアップが必要です。

  1. 稼働中のKubernetesクラスター。こちらの UbuntuにKubernetesをインストールする手順のチュートリアルを参照してください。.
  2. Kubernetesコマンドラインツール kubectl.
  3. インストール済みのHelmパッケージマネージャーが必要です。Helmを使用する準備ができていない場合は、GitHub – helm/helm: The Kubernetes Package Manager の公式リリースページからダウンロードできます。Helmのステップバイステップガイドを開始するには、Introduction to Helm: Package Manager for Kubernetes.
  4. もご参照ください。また、rootユーザーとパスワードが設定されたMySQLがインストールされている必要があります。MySQLを初めて使用する場合は、サーバーでのMySQLのセットアップ方法とMySQLの基本 および MySQLユーザー – 作成と権限の付与.

を確認してください。また、MySQLに接続された稼働中のKubernetesクラスターも必要です。複数のクラスターをお持ちの場合は、現在MySQLに接続されているクラスターを確認してください。お使いの kubectl 設定ファイルに設定されているすべての異なるクラスターを表示するには、以下のコマンドを実行します:

マシン上で、以下のような出力が表示されるはずです:

Current

Name

Cluster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Kubernetesを実行するためにDocker Desktopを使用しているため、docker-desktop と表示されます。実際の値は異なる場合があります。アスタリスク記号(*)は、現在どのクラスターがデフォルトのコンテキストであるかを示します。現在のコンテキストを変更する必要がある場合は、以下を実行します:

これで、チュートリアルの手順に進む準備が整いました。

MySQLのセットアップ

まず、WordPressに接続するための専用ユーザーをMySQLに作成します。これは、WordPressのインストール環境がKubernetesクラスター内の別のサーバー上に配置されるため必要です。MySQLサーバーから、次のコマンドを使用してMySQLにログインします:

rootパスワードを求められます。パスワードを入力すると接続されます。

  • WordPress専用データベースの作成

MySQLには任意の数のデータベースを作成できます。さらに、データベースをアプリケーション間で共有することもできます。WordPressにも独自のデータベースが必要です。ここでは、WordPress専用のデータベースを作成する必要があります。この専用データベースを作成するには、MySQLのbashで以下のステートメントを実行します:

  • WordPress専用ユーザーの作成

データベースが作成されたら、このデータベース用の専用ユーザーを作成します。このユーザーを使用して、新しく作成したデータベースに接続します:

上に強力なパスワードを入力してください。WordPress用のユーザーは作成しましたが、これまでのところ権限は追加していません。アクセスおよびDML(データ操作)操作のために、ユーザーに権限を提供する必要があります。簡単にするために、ユーザーにすべての権限を提供します。本番環境では推奨されませんので注意してください。MySQLシェルで以下のコマンドを実行します:

アクセス権限を管理する内部MySQLテーブルを更新するには、次のステートメントを使用します:

最後に、MySQLシェルで以下のコマンドを実行してMySQLクライアントを閉じることができます:

  • ユーザーとデータベースの検証

次に、WordPress ユーザーが WordPressデータベースに接続できることを検証する必要があります。 これを行うには、MySQLシェルを開き、以下のコマンドを実行します:

パスワードの入力を求められます。上でWordPressユーザーに入力したパスワードを使用してください。ログインできれば、MySQLユーザーの作成は成功です。次に、このユーザーがWordPressデータベースへのアクセス権を持っていることを確認します。MySQLシェルで以下のコマンドを実行します:
以下にWordPressデータベースが表示されていれば、WordPressユーザーはWordPressデータベースへのアクセス権を持っています。

  • MySQLサーバーへのリモート接続の許可

ここまでは、機能するWordPressユーザーとWordPressデータベースがあります。しかし、MySQLサーバーとWordPressデータベースは別々のサーバーにあります。そのため、WordPressがMySQLデータベースに接続できることを確認する必要があります。このために、リモートホストからの接続を許可するようにMySQL設定を編集する必要があります。次のファイルを編集する必要があります:mysqld.cnf ファイル。Linuxベースのシステムでは、このファイルは以下にあります:

その後、任意のテキストエディタでファイルを開き、bind-address を見つけます。bind-addressは、MySQLがリッスンできるIPを指定します。デフォルトでは、MySQLは 127.0.0.1. のみでリッスンします。外部ホストからの接続を許可するには、bind-address0.0.0.0. に変更します。これらの変更を反映させるには、以下のコマンドを実行してMySQLサーバーを再起動します:

次に、リモートで接続できるかどうかをテストしたい場合は、ローカルマシンまたは開発サーバーから次のコマンドを実行します:
上記のコマンドに mysql_server_ip を追加して実行します。エラーなしで接続できれば、次に進むことができます。

WordPressのインストールとアップグレード

WordPressはデフォルトでデータベースとしてMariaDBを使用します。MySQLデータベースを使用したいので、このデータベースは使用しません。この変更に伴い、管理者ユーザーとパスワードも設定する必要があります。これはコマンドラインパラメータを実装することで行います。

まず、my blog-settings という新しいフォルダを作成します。フォルダ内に values.yaml という新しいファイルを作成します。values.yaml ファイルに以下の内容を入力します:

このファイルは一目瞭然です。以下でMariaDBを無効にしていることに注意してください。設定の準備ができたので、helm(WordPressインストール用)。PowerShellで以下のコマンドを実行します:

プロセスが完了すると、次の名前で作成されたサービスが表示されます:myblog-wordpress。WordPressが使用可能になるまでには少し時間がかかります。実行中のサービスを確認するには、以下のコマンドを実行します:
以下のような結果が表示されます:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

ここには、実行中のサービスに関する非常に役立つ情報が表示されています。外部IPとポートに注意する必要があります。外部IPは、WordPressが提供されているIPです。Docker Desktopを使用しているため、外部IPにはnoneが表示されています。お使いのシステムに応じたIPが表示されます。Webブラウザを開き、このIPを入力してください。WordPressのログインページが表示されます:

WordPress with MySQL 1

これらは、上記のYAMLファイルで指定した資格情報です。これらの資格情報を入力すると、WordPressでWebサイトを設定し、新しく作成したMySQLデータベースにコンテンツを保存する準備が整います。

WordPressのアップグレード

WordPressは、セキュリティの脆弱性を修正し、より多くの機能やバグ修正などを展開するためにアップデートをリリースします。PowerShellで以下のコマンドを実行することで、WordPressのインストールをアップグレードできます:

アップグレードの前に、リリースのリストを確認したい場合は、以下のコマンドを実行できます:

以下のような出力が表示されます:

利用可能な新しいバージョンのWordPressリポジトリがあるかどうかを確認したい場合は、以下のコマンドを実行できます:

WordPressリリースを最新のWordPressチャートにアップグレードしたい場合は、常に以下を実行する必要があります:

設定値が変わらないように、以前と同じ設定ファイルを使用する必要があります。

リリースのロールバック

Helmを使用してアップグレードを実行するたびに、Helmはリリースのチェックポイントを作成します。期待通りに動作しない場合は、元に戻すことができます。リリースを比較して元に戻すことが可能です。何らかの問題でアップグレードプロセスが失敗した場合は、前のリリースにロールバックできます。ロールバックするには、以下のコマンドを実行します:

今回の場合は、以下のコマンドを実行して前のリリースにロールバックします:

復元プロセスが正常に完了したことを確認するには、helm listコマンドを実行します。

結論

この包括的なチュートリアルでは、MySQLをセットアップし、この外部MySQLを使用してWordPressをインストールする方法を説明しました。Helmパッケージマネージャーを使用してKubernetes上にWordPressをインストールし、WordPressのアップグレードも行いました。

Helmを使用したKubernetesへのインストール方法を理解したところで、ここで立ち止まらないでください。お気軽にthe CloudSigma blogをご覧になり、Kubernetesについてさらに学習してください:

Happy Computing!

author

Hark Labs

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。