WordPressのチュートリアル
    • PDF

    WordPressのチュートリアル

    • PDF

    Article Summary

    Classic環境で利用できます。

    Ncloud Kubernetes Serviceを利用してクラスターを配布する

    このガイドでは、NAVERクラウドプラットフォームのNcloud Kubernetes Serviceを利用し、クラスターにWordPressアプリケーションを配布します。

    クラスターを作る

    • NAVERクラウドプラットフォームのコンソールにログインします。
    • 左メニューからNcloud Kubernetes Serviceを選択します。
    • 上段の作るボタンをクリックします。
    • 以下の段階を完了します。
      • クラスターの設定
        • クラスター名:希望する名前を入力します。
        • ノード数:このガイドではノード数を1に設定します。
      • ログインキーの設定
        • ワーカーノードに接続するために、必要なログインキーを設定します。
      • 最終確認
        • 設定が正しいか確認し、作るボタンをクリックします。
    • 数分が経過した後、クラスターの状況が運用中になれば利用が可能になります。
    参考

    詳しいガイドは、リンクをご参照ください。

    クラスターに接続する

    kubectlをインストールする

    クラスターに接続する

    nks-1-3-1_ja

    • クラスターの詳細情報から設定ファイルをダウンロードします。
    • クラスターアクセスには、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-IPpending状態から実際のアドレスに変更されると、サービスが可能になります。
    • 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
    

    nks-1-3-2_ja

    • ブラウザで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にアップデートされていることを確認することができます。

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.