初心者と一緒に簡単kubernetes入門 Part3

Kubernetes

このパートで一区切りです。

WordPressをインストールする

マニフェストファイルでMysqlWordPressをインストールする

kubernetesにはマニフェストファイルというものがあります。
これは設計図のようなもので、このファイルを読み込ませることで設計してある通りに作成してくれます。

kubernetes.io
guide.ncloud-docs.com

今回はこれらのサイトを参考にしています。

特にNAVERさんのものがやりやすかったのでこのマニフェストファイルでデプロイしてみましょう。

まずはMySQLを入れていきます

##Mysqlで使うパスワードを設定します
root@k8s-master:~# kubectl create secret generic mysql-pass --from-literal=password='好きなパスワードを入れてください'
#これが表示されればOK
secret/mysql-pass created
##NAVERさんのMySQLマニフェストファイルをデプロイするコマンド(これでMySQLがインストールされます。簡単!)
root@k8s-master:~# kubectl apply -f https://gist.githubusercontent.com/NaverCloudPlatformDeveloper/39e63bf8051c2af338bf4728b4336358/raw/1804b7b36eb6818fedf600c73f6b9cf9219529a0/nks-tutorial-mysql.yaml
##これが表示されたらOKです
persistentvolume/mysql-pv created
persistentvolumeclaim/mysql-pv-claim created
deployment.apps/wordpress-mysql created
service/wordpress-mysql created
##NAVERさんのWordpressマニフェストファイルをデプロイするコマンド
root@k8s-master:~# kubectl apply -f https://gist.githubusercontent.com/NaverCloudPlatformDeveloper/8bb23ccd8310f05d2ef737835d4d1748/raw/d97aa174df6f31d7c4b0de5957fe67c6a2846fe3/nks-tutorial-wordpress.yaml
##これが表示されたらOK
deployment.apps/wordpress created
service/wordpress created

これでkubernetesによるデプロイが完了しました。動いているか確認してみます

root@k8s-master:~# kubectl get pods
NAME                               READY   STATUS    RESTARTS       AGE
wordpress-xxxxxxxxxx-xxxxx         1/1     Running   0              30s
wordpress-mysql-xxxxxxxxx-xxxxx   1/1     Running   1 (118s ago)   2m23s

Container Creatingになっているときはしばらく待つとRunningになります。
では実際に動いているかkubectl get serviceでポート番号を確認します。

root@k8s-master:~# kubectl get service
NAME              TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes        ClusterIP      xx.xx.xx.xx        <none>        443/TCP        22h
wordpress         LoadBalancer   xx.xxx.xxx.xxx   <pending>     80:31784/TCP   22h
wordpress-mysql   ClusterIP      None             <none>        3306/TCP       22h

つまり31784ポートでうごいているみたいです。実際に行ってみましょう

無事WordPressのインストールページにありつけました

インストールもできてWordPressが動くことが確認できました

ついでにpodの詳細がわかるコマンドを確認しておきます。

root@k8s-master:~# kubectl get pod -o wide
NAME                               READY   STATUS    RESTARTS   AGE   IP           NODE      NOMINATED NODE   READINESS GATES
wordpress-5c9d4878bf-mtqxn         1/1     Running   0          22h   xx.xxx.x.x   worker2   <none>           <none>
wordpress-mysql-668d75584d-rn2ld   1/1     Running   0          22h   xx.xxx.x.x   worker1   <none>           <none>

注目はNODEです。wordpress本体はworker2ノードにいるのに対して、mysqlはworker1ノードにいます。
wordpressmysqlがないと動かないので冗長化になっていませんが、worker2とworker1は1つのアプリしか担当しなくてよいので負荷分散にはなっています。
(今回3VM使っている意味があんまりなかったですが、次はしっかりクラスタを作ってみたいと思います)

とりあえずPart3まで以上です。
今度replicasetでちゃんとしたクラスタの作成などもやってみたいと思います。
まあ次はwindowskubernetesの組み合わせを試すのが先かもですが。。

念のため:今回実験的に作っているので作成が確認できたらwordpressは削除してください

付録
今回使ったkubernetesのコマンド

kubectl create secret generic mysql-pass --from-literal=password='好きなパスワードを入れてください'
######################
kubectl createはkubernetesのあらゆるリソースを作成するコマンド
このコマンドはsecretというパスワードを作ったりするものです
kubectl apply -f https://gist.githubusercontent.com/NaverCloudPlatformDeveloper/39e63bf8051c2af338bf4728b4336358/raw/1804b7b36eb6818fedf600c73f6b9cf9219529a0/nks-tutorial-mysql.yaml
######################
kubectl apply -f リンクかファイルでマニフェストファイルをデプロイできます。
今回はリンクでしたが、マニフェストファイルをダウンロードして、ファイルがあるパスを入れることでもデプロイできます。
タイトルとURLをコピーしました