クーベネティスについて

2021年12月11日

1. Kubernetes(クーベネティス)について

1.1. クーベネティスとは?

  • Google が中心となって開発してきた OSS のコンテナ管理システムで Docker と組み合わせて
    使用することでコンテナのデプロイを管理しやすくし運用上必要な高可用性・負荷分散
    監視・オートスケールといった高度な機能が提供される管理システム。
  • 読み方・発音

    • koo-ber-net-ess
      クーバネティス、クーベネティス、クーバネイティスと人によって違う呼び方がされている。

    • 略称として「K8s」と呼ばれ間 8 文字の「ubernete」を「8」に置き換えた略語で呼ばれる。

1.2. K8sはどんな事ができるのか?

  1. コンテナを組み合わせて利用
  2. スケールアウト
  3. ロールアウト&ロールバック

    • コンテナに変更を加える際に無停止で更新および戻す事ができる機能。

  4. 永続ストレージの利用

    • コンテナが破棄された場合、通常データは破棄されるがステートフルな Pod を使用することで
      データが破棄されずに残り続けるので Apache などのロングランニングサービスの利用に
      適している。

    • Pod とは K8s の概念の 1 つで単体または複数のコンテナを束ねる為に用いられコンテナを
      デプロイする際は必ず Pod という単位で展開される。

      • Pod には Job という機能が存在し通常 Pod が落ちた場合自動的に再起動されるがバッチ
        ジョブを含むコンテナでは落ちた Pod が再起動されずにそのままプロセスが終了される。

        CPU のリソースを多く消費するバッチ処理などの動作に適している。

  5. 自己修復 ( 可用性 )

    • ワーカーノードに対して必要数の Pod を起動し処理能力を補うことでノードの
      障害に対してサービスは無停止で継続可能。
      ※ Pod は常にノード上で動作している。

  6. クラスタの分割利用

    • CPU やネットワークなどの各種リソースを名前空間という仕組みで論理分割することにより
      独立性を保つこと一つ当りのコンテナリソース消費を抑えられる。

  7. 監視&ログ分析

    • ログ分析&解析ツール

      • Kibana

        対話的に操作でき問題箇所の特定をすることができる。
        またコンテナとして DockerHub に公開されているのですぐに利用することが出来る。

    • 稼働状態の監視ツール

      • Grafana

        CPU や Disk といった各種リソースをグラフで可視化してくれる監視ツールで
        使用状況によってアラートを飛ばすことも可能。