先日、KubernetesへデプロイしたWordPressに、Dockerで動かしていたWordPressのバックアップをリストアしてみました。
データベースの内容の確認のため、KubernetesへphpMyAdminをデプロイする手順を記録させて頂こうと思います。
KubernetesのphpMyAdminデプロイ手順の覚書
接続先ポッドのホスト名確認
デプロイ前に。WordPressをデプロイした際の、mariadbポッドのホスト名を確認しておきました。
kubectl describe pod wordpress-mariadb-0
ポッドの中でhostnameコマンドで確認した内容は、ポッド間の接続に使用するホスト名とは違うようです。
describeで表示されるService Account欄でしょうか?
helmでデプロイしたWordPressの場合、名称-mariadb-0の、-0を外した「名称-mariadb」が正解でした。
Kubernetesは同じ名前空間の中ではポッド間で通信が可能のようです。phpMyAdminは、mariadbポッドと同じ名前空間にデプロイします。
phpMyAdminのデプロイ
bitmaniさんのチャートを使用させて頂き、helmでデプロイしました。
サービスタイプにLoadBalancerを指定しています。ロードバランサー導入済みの環境用になります。
helm install my-release \
--set db.host=<mariadbのポッドのホスト名> \
--set db.port=3306 \
--set service.type=LoadBalancer \
oci://registry-1.docker.io/bitnamicharts/phpmyadmin
ロードバランサーを使用したため、割り当てられたIPアドレスに、クラスタ外のPCからWebブラウザで接続しました。
WordPressデプロイ時に使用したmariadbのアカウントでログインが可能です。
少し画面が崩れている気もしますが。データベースの管理という機能上は、特に問題はなさそうです。
クリーンナップ
helm uninstall my-release
phpMyAdminの利用が完了しましたら、デプロイメントを削除しておきます。
Kubernetesの場合、同じ名前空間にポッドを置けば、お互いに通信できるのは、管理が容易でとてもありがたいです。
今回はデフォルトの名前空間に、WordPressとphpMyAdminをデプロイしましたが。
セキュリティを考慮すると、名前空間は細かく決めて運用したほうが良いのかもしれません。