LoginSignup
0
0

More than 1 year has passed since last update.

【超入門】Kubernetesの自己回復機能を試す

Posted at

はじめに

Kubernetesは近年のマイクロサービス化の流れに伴い使用されている技術です。
42Tokyoの課題でKubernetesを学ぶ機会がありました。
当時の自分にはハードルが高かったですが、触れるには良い機会だったと思います。

環境

XUbuntu 18.04.5
minikube v1.14.2
kubectl v1.18.0
docker v19.03.6

Kubernetes(K8s)とは

Kubernetesとは、コンテナオーケストレーションツールの一つです。
コンテナオーケストレーションとは、複数あるDockerコンテナの管理をする技術です。
図のPodはデプロイできる最小単位のリソースで、1つ以上のコンテナをまとめたものです。
Nodeは1つのVMまたは物理的なマシンを表します。
Clusterはコンテナ化されたアプリケーションを実行するNodeの集合体を表します。

Kubernetesで出来ること

  • 複数のDockerホストの管理
  • コンテナのスケジューリング
  • ローリングアップデート
  • スケーリング / オートスケーリング
  • コンテナの死活監視
  • 障害時のセルフヒーリング(自己回復)
  • サービスディスカバリ
  • ロードバランシング
  • データの管理
  • ワークロードの管理
  • ログの管理
  • Infrastructure as Code
  • その他エコシステムとの連携や拡張

自己回復機能を試す

準備

ローカル環境でKubernetesクラスタを立ち上げるためにMinikubeを使いました。

マニフェスト

Podの設定はマニフェストに記述します。
replicasを設定していることによってPodが死んでも、その数になるようにPodを立て直します。

apiVersion: apps/v1
kind: Deployment
metadata:
    name: nginx-deployment
    labels:
        app: nginx
spec:
    replicas: 3                     #レプリカ数。この数だけPodを立てる。
    selector:
        matchLabels:
            app: nginx              #このラベルに一致するPodを立てる
    template:
        metadata:
            name: nginx-pod         #Pod名
            labels:
                app: nginx          #ラベル
        spec:
          containers:
          - name: nginx             #コンテナ名
            image: nginx:latest     #Docker image

Podを起動させる

kubectl apply -f nginx.yaml

起動されたPodをダッシュボード上で確認します。
3つのPodが立てられました。

Podを削除する

起動しているPodのうちの1つをコマンドで削除し、自己回復機能を試します。

kubectl delete pod nginx-deployment-85ddd67557-4pgkd

削除後に新しいPodが立てられました。これが自己回復機能です。
今回は試してませんが、Podを同時に削除されても合計3つになるように復活します。

おまけ

Youtubeにローリングアップデートのデモがあったので共有です。
https://youtu.be/ObA1OEVdrQY

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0