Kubernetes(k8s)を学ぼう! Microservices編~ReplicaSet~

こんにちは。KOUKIです。k8s学習中のWebエンジニアです。

KubernetesでMicroservicesのデプロイ方法を学びましょう。

本記事では、ReplicaSetについて解説します。

尚、今回もMinikubeを使いますので、以下の記事でインストール&起動してください。
※ MacおよびChromeで検証します。

参考

Udemyの「Kubernetes Hands-On – Deploy Microservices to the AWS Cloud」コースを参考にしています。

解釈は私が勝手に付けているので、本物をみたい場合は受講してみてください。

API OVERVIEWも参考になります。

前回

現在の状況は、以下のようになってます。

ReplicaSetについて

ReplicaSetは、KubernetesでPodを管理するためのオブジェクトです。

Podを指定した台数になるように作成し、障害か何かでPodが落ちたときに自動的に復旧作業を行い、指定されたPod数を常に維持します。

障害時にはかなり頼りになる機能です。

ReplicaSetを設定する前

現状がどうなっているのか、まずは確認しましょう。

以下は、fleetman-webappサービスの詳細情報です。

Selectorの値が、「app=webapp,release=0-5」になっているので、release=0-5のタグがついたアプリケーションに接続できるはずです。

「minikube service fleetman-webapp」を実行するとアプリケーションをブラウザ上で確認できます。

次に、Pod webapp-release-0-5 を削除してみましょう。

消えたことが確認できたらブラウザをリロードします。

アプリケーションに接続できなくなりましたね。

ReplicaSetを設定してみよう

続いて、公式を参考にReplicaSetを設定してみましょう。

queue Podは前回設定した内容なので、無視してください。

webapp PodにはReplicaSetをつけました。「replicas: 1」の設定により、常に1つのPodが動作する環境になっています。

webapp PodがReplicaSetを指定したPodです。replicasetも生成されているようですね。

minikube dashboardからも確認できます。

Serviceの変更

Serviceの設定も変更します。

releaseタグをコメントアウトしただけです。変更を反映させましょう。

ブラウザをリロードするとアプリケーションが表示されます。

ReplicaSetの挙動確認

下記のコマンドで、webapp Podを削除してみましょう。

少し時間を置いてから下記のコマンドを実行します。

新しくwebapp-ftszmが立ち上がりましたね。「-ftszm」についてはReplicasetが勝手につける識別子です。2つ以上のPodになった場合、Podを識別するのに役立ちます。

それよりも驚くべきことは、Podが自動的に復旧したことですね^^

ブラウザをリロードしても問題なく表示されます。

Replicasetの詳細を確認しましょう。

Eventsに「SuccessfulCreate」と表示されているので、いい感じに機能しているようです。

ReplicaSetを増やしてみよう

現状は、webapp Podは常に1 Pod動くようになっています。

これを、2 Podに増やしてみましょう。

変更をapplyします。

webapp Podが2つ起動しましたね! 成功です!!

2つ以上にするとどちらかが機能不全を起こしてももう一方でカバーできるので、アプリケーションの可用性は担保されます

次回

次回は、Deploymentについて学びましょう。

記事まとめ

参考

コメントを残す