Kubernetesとは?
大規模システムのような複数サーバでの分散環境のサーバ管理を担うツールです。Dockerの関連技術の一つでコンテナオーケストレーションのディファクトスタンダードになりつつあります。Docker Swarm以上に機能が充実しており拡張性の高さもかね揃えています。当初はGoogleで設計、実装されて、現在はCNCF(Cloud Native Computing Foundation)に参加する企業が開発しているツールです。クラウドネイティブの世界では次のLinuxになると言われるほど期待されています。
コンテナオーケストレーションとは?
サーバーのリソース状況を考慮して適切にコンテナをデプロイすることです。
具体的には、クライアントが「このデータ下さい」と言ったときに該当するコンテナにつないでくれて、裏にある状態を考えなくてもよくなる。また、オーケストレーションは各コンテナの健康管理もしていて落ちたら立ち上げてくれる。
メリット
OSSであるためどのクラウドでも動く点。オンプレミスやEC2で動かしていたKubenetesをそのままEKSに持っていくことが可能。ECSに移行する場合などはそれが難しい。
Web業界での使われ方
マイクロサービス構成のWebサービスを効率よく管理運用するためのコンテナ基盤
Kubernetesが目指しているもの?
ITインフラの抽象化
Kubernetes運用時の難しい点
マスター(コントロールプレーン)を健全に保つこと。AWSのEKSを利用すれば、Kubenetesコントロールプレーンの管理をAWSに委ねることが可能。
主要クラウドサービスでの利用
Google Kubernetes Engine(GKE)
GCPのKubernetesです。
Amazon Elastic Container Service(ECS)
AmazonのKubernetesです。
Azure Container Service(Azure)
AzureのKubernetesです。
Kubernetesの機能
計画に従いアプリを迅速にデプロイする。
- コンテナの冗長数、CPU時間、メモリ容量の割り当て
- ストレージ容量、ネットワークのアクセスポリシー、ロードバランシング
稼働中のアプリケーションをスケールする。
- 繁忙期にコンテナ数を増やして処理能力を向上させる。
- 閑散期にはコンテナ数を減らし資源占有量や料金を削減する。
新バージョンのアプリケーションを無停止でロールアウトする。
CPU時間等資源管理を厳格にしてハードウェア稼働率を高める。
様々な異なる環境で共通のオペレーションでアプリを運用する。
環境の種類 | 説明 |
---|---|
パブリッククラウド | 基盤を複数ユーザーが共有し、安価で迅速に運用 |
プライベートクラウド | 特定ユーザー専用の基盤で、セキュリティを優先した運用 |
マルチクラウド | 複数クラウドを併用して、高安定なサービス運用 |
ハイブリッドクラウド | オンプレとクラウドを併用した適材適所の運用 |
オンプレミス | 自社設備を利用してアプリケーションに特化した運用 |
変化をし続ける運用環境を前提に設計された高い柔軟性と拡張性を実現
- マイクロサービス化されたアプリの最適な実行環境
- 緩やかなアプリ連携による柔軟さ、置き換えやすさ
- 様々なスペックのサーバーを混在したクラスタ構成
- サーバの停止、追加、破棄が容易
- ストレージ、ロードバランサーのダイナミックなプロビジョニング
- パブリッククラウドとAPIで連携させKubernetesから操作
高可用性や性能管理の実現
- サーバー停止時におけるアプリ再配置
- アプリ異常停止における自動再起動
- 停止許容数を遵守するサービス維持
- 高負荷時の自動スケーリング
リリースノート
バージョン | リリース日 | 説明 |
---|---|---|
1.0 | 2015年7月 | |
1.1 | 2015年11月 | パフォーマンス改善 |
1.2 | 2016年3月 | 更なるパフォーマンス改善 |
1.3 | 2016年7月 | オートスケールを実現 |
1.4 | 2016年9月 | クラスタ構成作業を容易化し、2コマンドで構築可能に。 |
1.5 | 2016年12月 | 本番使用のサポート機能、StatefulSetベータ版リリース |
1.6 | 2017年3月 | 5000ノードを超えるスケール、クラスタのフェデレーション |
1.7 | 2017年6月 | セキュリティ機能を強化 |
1.8 | 2017年9月 | ロールベースアクセス制御(RBAC)の安定化 |
1.9 | 2017年12月 | ミッションクリティカルに対応する安定性を達成 |
1.10 | 2018年3月 | CSI(Container Storage Interface)がベータ版に移行 |
1.11 | 2018年7月 | バージョン1.11、CoreDNSがデフォルトになる。CSIが強化される。 |
1.12 | 2018年10月 | RuntimeClassの導入で異なる実行環境の異種ノードに対応 |
1.13 | 2018年12月 | kubeadmとCSIが正式提供 |
1.14 | 2019年3月 | Windowsノードと永続ローカルボリュームの本番利用対応 |
この記事へのコメントはありません。