Kubernetes

  • Kubernetes とは

    Kubernetesは、コンテナ化されたアプリケーションを実行しているホストをまとめてクラスタ化し、自動デプロイ機能やスケーリング機能、管理機能を提供するプラットフォームで、Go言語で記述されています。
    AWSやOpenStackなどが仮想マシン指向のプラットフォームであるのに対し、Kubernetesはアプリケーション指向のプラットフォームで、コンテナ化したアプリケーションを中心にした管理に適しています。

  • Kubernetes の歴史

    Googleが社内用にアプリケーション指向のプラットフォーム BorgとOmegaを開発し、運用していたのが始まりです。
    この2つのプロジェクトから得た教訓と10年以上の運用実績から生まれた第三のプロジェクトがKubernetesです。
    Kubernetesは、2014年にOSSとして公開され、2016年以降はCloud Native Computing Foundation (CNCF)が開発支援やプロジェクト運用を行っています。

  • Kubernetes の特徴

    コンテナを実運用で使用する際には、複数のノードに対してのデプロイやスケーリング、コンテナ間のネットワーク、ホスト間の連携、障害復旧、監視、負荷分散など、様々な課題があります。
    Kubernetes を活用することによりこれらの問題を解決することができます。

    Kubernetes の主な特徴として次の点が挙げられます。

    複数ホストの管理
    REST APIで複数のノード(マシン)にまたがったコンテナ管理ができる。
    拡張性 (スケールアウト)
    クラスタのリソース (CPU、メモリ、ディスク) が足りなくなった場合は、単純にノードを増やすだけで既存のサービスに影響を与えることなく拡張できる。
    水平自動スケジューリング
    ユーザはどのホストにデプロイをするのかを考える必要がなく、イメージと台数を指定するだけで自動でスケジューリングできる。また、ワークロードの種類やホストの種類によって、親和性を意識したスケジューリングもできる。
    オートスケーリング
    - アプリケーションを独立してデプロイできる
    - 稼働中にアプリケーションをスケールアウト (イン) できる
    - アプリケーションの新機能をシームレスに提供開始できる
    ローリングアップデートとロールバック
    コンテナイメージが更新された際に無停止更新ができる。これは稼働中の Podを徐々に削除して、新しいイメージで新しい Pod を立ち上げることで実現する。また、前の状態に巻き戻すこともできる。
    設定の集中管理
    共通の設定やコンテナのアプリケーションから利用されるデータベースのパスワードなどの情報をKubernetes クラスタに集中管理することができる。 この仕組みは、etcd を用いて実現されている。
    フェイルオーバー
    Podに不具合があってダウンした場合、状態変化を察知し Spec の状態に合わせて、Pod を自動的に再起動できる。
    機能の拡張
    独自の機能などを実装したり、プラットフォーム自体をフレームワークと して利用することができる。拡張性を利用することで、Kubernetes で扱うリソースを独自実装することもできる。
    ロードバランシングとサービスディスカバリ
    仮想IPアドレスを割り当て、ロードバランサーや外部からのアクセスサービスを実現できる。

  • VA Linux の取り組み

    VA Linux は、コンテナ技術を重要なプラットフォームの一つとして位置付け、基盤系 OSS の開発や障害解析で培った経験と知識との相乗効果で Kubernetes の技術支援をしていきます。

    VA Linux の強み
    • Linux Kernel を主軸にした基盤系 OSS の開発・サポート実績
    • OpenStack 開発・サポートへの早期からの取り組み
    • OpenStack 関連技術、仮想化技術から Docker / Kubernetes 等のコンテナ技術まで包括的な技術支援が可能
    【実績例】
    • Kubernetes, Docker の技術要素調査

    • Calico や Flannel を活用した Kubernetes 側へのネットワーク実装

    • Kubernetes 勉強会

      • - Kubernetes の基礎知識
      • - Kubernetes クラスタの HA 構成について
      • - 通常のクラスタ構成 (非HA) の問題点とその解決方法 など
    • Japan Container Days v18.12 での公演: マイクロサービス と Kubernetes の性能分析

提供サービス

VA Linux では Kubernetes に対して、以下のサービスをご提供しております。

  • コンサルティングサービス
    (導入支援)
    • ・機能要件に対する技術的実現性の検討と実現案の提案
    • ・技術調査・分析
    • ・ソースコード解析調査
  • 受託開発サービス
    • ・機能追加の検討、実施
    • ・運用ツールの開発
  • コミュニティ対応
    • ・コミュニティへの機能提案および開発
    • ・バグレポート・修正
    • ・コミュニティ活動支援
  • トレーニング
    • ・コンテナアーキテクチャ解説
    • ・コンテナ管理の仕組み
    • ・コンテナ環境の設計ノウハウ
    • ・Docker / Kubernetes ネットワーク接続の仕組み
各種ご質問、ご要望に関しましては、下記よりご連絡ください。

お客様のご要望に合わせた最適なサポートサービスを提供するため、個別に契約内容を相談させていただきます。