WordPressのチュートリアル
- 印刷する
- PDF
WordPressのチュートリアル
- 印刷する
- PDF
Article Summary
Share feedback
Thanks for sharing your feedback!
Classic環境で利用できます。
Ncloud Kubernetes Serviceを利用してクラスターを配布する
このガイドでは、NAVERクラウドプラットフォームのNcloud Kubernetes Serviceを利用し、クラスターにWordPressアプリケーションを配布します。
クラスターを作る
- NAVERクラウドプラットフォームのコンソールにログインします。
- 左メニューからNcloud Kubernetes Serviceを選択します。
- 上段の作るボタンをクリックします。
- 以下の段階を完了します。
- クラスターの設定
- クラスター名:希望する名前を入力します。
- ノード数:このガイドではノード数を1に設定します。
- ログインキーの設定
- ワーカーノードに接続するために、必要なログインキーを設定します。
- 最終確認
- 設定が正しいか確認し、作るボタンをクリックします。
- クラスターの設定
- 数分が経過した後、クラスターの状況が運用中になれば利用が可能になります。
参考
詳しいガイドは、リンクをご参照ください。
クラスターに接続する
kubectlをインストールする
- 作られたクラスターに接続するためには、CLIである
kubectl
が必要になります。以下の公式文書からOSに合ったkubectlをインストールします。
クラスターに接続する
- クラスターの詳細情報から設定ファイルをダウンロードします。
- クラスターアクセスには、2つの方法があります。
- $HOME/.kube/configに設定ファイルを追加
- kubectlコマンドを利用する際、--kubeconfig="設定ファイル"のオプションを追加
- 今回の説明では、
--kubeconfig="設定ファイル"
オプションを利用するとします。 - 便宜のために、設定ファイルのあるパスから
$KUBE_CONFIG
の環境変数を設定した後行います。下の"設定ファイル"
部分にダウンロードした設定ファイルのパスを入力します。
export KUBE_CONFIG="設定ファイル"
参考
例示:export KUBE_CONFIG=kubeconfig-318.yaml
kubectl get nodes
コマンドを利用し、クラスターノードがクラスターを作る際に設定した数(1つ)分だけ出てくるか照会します。
kubectl --kubeconfig $KUBE_CONFIG get nodes
- 実行結果
NAME STATUS ROLES AGE VERSION
nks-pool-318-w-181 Ready node 7m v1.12.7
参考
Windowsにおける設定方法は、kubeconfigの環境変数を設定するをご参照ください。
アプリケーションを配布する
kubectlコマンドとともにKubernetes Manifestファイル(.yaml)を利用し、MySQLサービスとWordPressサービスとを配布してみます。
MySQLを配布する
- WordPressに必要なMySQLを先に配布します。
MySQL Password Secretを作る
- まず、
kubectl create secret
コマンドを利用してMySQLに接続するためのPasswordをSecretで作ります。以下の"YOUR_PASSWORD"
部分に新しく作るPasswordを入力します。
kubectl --kubeconfig $KUBE_CONFIG create secret generic mysql-pass --from-literal=password="YOUR_PASSWORD"
- 実行結果
secret/mysql-pass created
参考
例示:kubectl --kubeconfig $KUBE_CONFIG create secret generic mysql-pass --from-literal=password=1234
MySQLアプリケーションを配布する
- MySQLを配布するために、以下のリンクのManifestファイルを利用します。Manifestファイルには、MySQLサービスに必要なオブジェクトであるPersistentVolume、PersistentVolumeClaim、Deployment、Serviceが定義されています。
- 以下のように、
kubectl apply -f
コマンドを利用し、上記のManifestファイルをクラスターに反映します。
kubectl --kubeconfig $KUBE_CONFIG apply -f https://gist.githubusercontent.com/NaverCloudPlatformDeveloper/39e63bf8051c2af338bf4728b4336358/raw/1804b7b36eb6818fedf600c73f6b9cf9219529a0/nks-tutorial-mysql.yaml
- 実行結果
persistentvolume/mysql-pv created
persistentvolumeclaim/mysql-pv-claim created
deployment.apps/wordpress-mysql created
service/wordpress-mysql created
参考
実サービスでは、安定した運用のために、Cloud DB for MySQLのサービスの利用をお勧めいたします。
WordPressを配布する
- MySQLが正常に作られた場合、今回はWordPressを配布するために以下のリンクのManifestファイルを利用します。Manifestファイルには、Deployment、Serviceが定義されています。
- MySQLと同様に、
kubectl apply -f
コマンドでWordPressを配布します。
kubectl --kubeconfig $KUBE_CONFIG apply -f https://gist.githubusercontent.com/NaverCloudPlatformDeveloper/8bb23ccd8310f05d2ef737835d4d1748/raw/d97aa174df6f31d7c4b0de5957fe67c6a2846fe3/nks-tutorial-wordpress.yaml
- 実行結果
deployment.apps/wordpress created
service/wordpress created
kubectl get service --watch
コマンドでWordPressサービスの配布状況をリアルタイムで確認することができます。
kubectl --kubeconfig $KUBE_CONFIG get service wordpress --watch
- 実行結果
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wordpress LoadBalancer 172.21.5.101 <pending> 80:31864/TCP 35s
wordpress LoadBalancer 172.21.5.101 slb-1815725.n... 80:31864/TCP 40s
- 一定時間が経過し、
EXTERNAL-IP
がpending
状態から実際のアドレスに変更されると、サービスが可能になります。 kubectl get service
コマンドでWordPressサービスのEXTERNAL-IP
の全アドレスを確認します。
kubectl --kubeconfig $KUBE_CONFIG get service wordpress
- 実行結果
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wordpress LoadBalancer 172.21.5.101 slb-1815725.ncloudslb.com 80:31864/TCP 70s
- ブラウザでWordPress ServiceのEXTERNAL-IP(例示:slb-1815725.ncloudslb.com)に接続すると、WordPress画面を確認することができます。
Podをスケールする
現在のPodを照会する
kubectl get pods
コマンドで現在のmysql podとWordPress podとが1つずあることを確認します。
kubectl --kubeconfig $KUBE_CONFIG get pods
- 実行結果
NAME READY STATUS RESTARTS AGE
wordpress-6d884d9866-lj5bl 1/1 Running 0 10m
wordpress-mysql-7977b9588d-gbtll 1/1 Running 0 11m
Podのスケール
kubectl scale
コマンドでWordPress podを3つに増やしてみます。
kubectl --kubeconfig $KUBE_CONFIG scale deployments/wordpress --replicas=3
- 実行結果
deployment.extensions/wordpress scaled
結果の確認
- 再び
kubectl get pods
コマンドを利用すると、WordPress podのみが3つに増えていることを確認することができます。
kubectl --kubeconfig $KUBE_CONFIG get pods
- 実行結果
NAME READY STATUS RESTARTS AGE
wordpress-6d884d9866-2c8cl 1/1 Running 0 5s
wordpress-6d884d9866-7rxj8 1/1 Running 0 5s
wordpress-6d884d9866-lj5bl 1/1 Running 0 12m
wordpress-mysql-7977b9588d-gbtll 1/1 Running 0 14m
Application Updateする
- 現在の5.2バージョンで駆動中のWordPressのバージョンを5.2.2バージョンにアップデートしてみます。
現在のバージョンを確認する
kubectl get deployments -o wide
コマンドで現在のWordPressのイメージバージョン(5.2)を確認します。
kubectl --kubeconfig $KUBE_CONFIG get deployments wordpress -o wide
- 実行結果
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
wordpress 3 3 3 3 55m wordpress wordpress:5.2-apache app=wordpress,tier=frontend
バージョンをアップデートする
kubectl set image
コマンドを利用し、現在の5.2 バージョンで駆動中のWordPressのバージョンを5.2.2バージョンに変更します。
kubectl --kubeconfig $KUBE_CONFIG set image deployments/wordpress wordpress=wordpress:5.2.2-apache
- 実行結果
deployment.extensions/wordpress image updated
結果の確認
- 再び
kubectl get deployments -o wide -w
オプションに変更されたWordPressのアップデートをリアルタイムで確認します。
kubectl --kubeconfig $KUBE_CONFIG get deployments wordpress -o wide -w
- 実行結果
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
wordpress 3 3 3 3 55m wordpress wordpress:5.2-apache app=wordpress,tier=frontend
wordpress 3 3 3 3 56m wordpress wordpress:5.2.2-apache app=wordpress,tier=frontend
- 一定時間が経過し、WordPressのイメージバージョンがwordpress:5.2.2-apacheにアップデートされていることを確認することができます。
この記事は役に立ちましたか?