今回行った内容
- 研究でWordPressのPodに対して実験する必要があった.実験には実際に公開しているWEBサイトが望ましいので研究室のWEBサイトを実験で使った.kubernetesのディストリビューションは,k3sを用いている.
- 構築図をいかに貼る
MySQLのサーバを構築
- 研究室のデータのうちmysqlのデータをVM1に,
- コンテンツをVM2に保存
- VM1はMySQLのデータベースとして作成
- やったこと
1. MySQLのインストール
2. MySQLのデータをImport (https://qiita.com/rato303/items/2e614f23e5feee150ffc)
3. MySQLのuserを追加,権限の付与create grant
(https://qiita.com/shuntaro_tamura/items/2fb114b8c5d1384648aa ,CREATE文: https://www.dbonline.jp/mysql/user/index1.html ,GRANT文: https://www.dbonline.jp/mysql/user/index6.html)
4. MySQLのデータベースにアクセスを許可する設定するための設定ファイル特定方法mysql --help | grep my.cnf
(https://qiita.com/is0me/items/12629e3602ebb27c26a4)
5. MySQLのデータベースにリモートアクセスするための設定ファイルの変更bind-address = 127.0.0.1
をコメントアウト (https://qiita.com/u-dai/items/b360a337b5001778699e)
6. リモートホストのMySQLにアクセスし疎通確認 (https://qiita.com/sakito/items/7ddcbfb49edc7a50c6d7)
NFSサーバの構築
-
VM2はNFSサーバを作成,k8sのPersistentVolumeを作成してNFSサーバをPodにmountする
-
PVについての参考
- 構築の参考にしたサイト集
- やったこと
1. root権限でログイン
2. コンポーネントのダウンロードsudo apt install nfs-kernel-server
3. /etc/exportsに以下を追記# (公開したいディレクトリ) (どのマシンに公開するか)(公開モード) 例) /home/server/foo YYY.YYY.YYY.YYY(rw,sync,no_subtree_check)
4. NFSサーバの再起動sudo systemctl restart nfs-kernel-server
5. Worker-Nodeにコンポーネントのインストールsudo apt install nfs-common
6. ほかのVMからmountできるようになっているか確認$ sudo mount -t nfs 192.168.XXX.XXX:/mnt/nfs/pv /mnt/nfs
k8s-Wordpressのapply
今回利用させてもらったymlのファイルです.このnfs-pv.ymlとwp.ymlの中身を変更して利用しました.
applyして発生したエラー
-
WorkerNodeにnfsのパッケージがなくてPodの作成にエラーが発生しました.以下のコマンドでパッケージをインストールしてください.
sudo apt-get install -y nfs-common
-
mountでエラーが発生しました.このエラーは,
kubectl descriibe po
でmountが失敗したエラーが出ます. -
WPにアクセスしたときデータベース接続確立エラーが表示されました.これはMySQLにアクセスする時に接続できないのが原因で出てしまうエラーです.
- 原因としてwp-config.phpを設定を見直す必要がある.MySQLについての設定でユーザー名、DB名、パスワードの確認をする必要がある.
- DBのユーザ名とホスト名が異なっているまたは,権限が付与されていない場合がある
- 参考資料 https://qiita.com/worldgoodbye/items/afd30058f77f529bbabc