AWS での Kubernetes

オープンソースコンテナの管理およびオーケストレーション

kuberneteslogo

Kubernetes は、コンテナ化アプリケーションを大規模にデプロイおよび管理できるオープンソースソフトウェアです。Kubernetes では、デプロイ、メンテナンス、スケーリングのプロセスにより、Amazon EC2 コンピューティングインスタンスのクラスターが管理され、これらのインスタンスでコンテナが実行されます。Kubernetes では、同じツールセットを使用して、オンプレミスやクラウド上で、すべてのタイプのコンテナ化アプリケーションを実行できます。

AWS では、スケーラブルで可用性の高い仮想マシンインフラストラクチャ、コミュニティによってサポートされたサービス統合、Amazon Elastic Container Service for Kubernetes (EKS) (Kubernetes 準拠の認定を受けているマネージドサービス) により、クラウドで簡単に Kubernetes を実行できます。

Kubernetes の仕組み

Kubernetes では、利用可能なコンピューティングリソースおよび各コンテナのリソース要件に基づいて、コンピューティングインスタンスのクラスターを管理し、クラスター上で実行するコンテナをスケジュールします。コンテナはポッドという論理グループ内で実行され、ユーザーは 1 つまたは複数のコンテナをまとめて 1 つのポッドとして実行およびスケーリングできます。

Kubernetes コントロールプレーンソフトウェアでは、使用率またはユーザー定義のその他のメトリクスに基づいて、ポッドをいつどこで実行するかの判断、トラフィックルーティングの管理、ポッドのスケーリングが実施されます。Kubernetes では、リソース要件に基づいてクラスターでポッドが自動的に開始されます。ポッドまたはインスタンスに障害が発生した場合は、ポッドが自動的に再開されます。各ポッドには IP アドレスと単一の DNS 名が割り当てられており、Kubernetes ではこれを利用して、サービス間およびサービスと外部トラフィック間の接続が行われます。

Kubernetes を使用する利点

Kubernetes はオープンソースプロジェクトであるため、Kubernetes を使用すれば、運用ツールの変更は不要で、どこからでもコンテナ化アプリケーションを実行できます。Kubernetes は、大規模なコミュニティのボランティアによって保守されており、常に改善されています。さらに、他の多くのオープンソースプロジェクトやベンダーによって、アプリケーションアーキテクチャを改善および拡張できる Kubernetes 互換ソフトウェアが作成および保守されています。

100x100_benefit_scalable_100x100_benefit_scalable

アプリケーションを大規模に実行

Kubernetes では、複雑なコンテナ化アプリケーションを定義し、サーバーのクラスター全体で大規模に実行できます。

100x100_benefit_migration

アプリケーションをシームレスに移行

Kubernetes では、同じ運用ツールを使用し、コンテナ化アプリケーションをローカルの開発マシンからクラウド上の本番デプロイにシームレスに移行させることができます。

100x100_benefit_global_100x100_benefit_global

どこでも実行可能

スケーラブルで可用性の高い Kubernetes クラスターを AWS で実行しながら、オンプレミスで実行している Kubernetes のデプロイと完全な互換性を保つことができます。

100x100_benefit_compatible

新機能の追加

オープンソースプロジェクトとして、Kubernetes に新機能を追加することは容易です。大規模なコミュニティの開発者や企業によって、Kubernetes のユーザーに役立つ拡張機能、統合機能、プラグイン機能が作成されています。

AWS で Kubernetes を実行

AWS では、簡単に Kubernetes を実行できます。Amazon EC2 を使用して自分で Kubernetes インフラストラクチャを管理するか、Amazon EKS を使用して自動的にプロビジョニングされた、マネージド Kubernetes コントロールプレーンを取得するかを選ぶことができます。どちらにしても、VPC、IAM、サービスディスカバリなどの AWS のサービス、および AWS のセキュリティ、スケーラビリティ、高可用性に対して、コミュニティによってサポートされた強力な統合が得られます。

目的
お勧めする選択肢
Kubernetes のデプロイを完全に管理する。強力なインスタンスタイプを選択し、Kubernetes をプロビジョニングおよび実行する。 Amazon EC2
マスターインスタンスおよび etcd のプロビジョニングや管理を行うことなく、Kubernetes を実行する。
Amazon EKS
コンテナイメージの保存、暗号化、管理を行って迅速にデプロイする。
Amazon ECR

 

AWS コミュニティ Kubernetes コラボレーション

AWS では Kubernetes のコードベースに貢献するなど、Kubernetes コミュニティと積極的に協力して、Kuberentes ユーザーが AWS のサービスや機能を活用しやすくなるようにしています。

CNI_logo_120x100

CNI プラグイン

AWS の Elastic Network Interfaces を使用した Kubernetes のポッドネットワーク。

heptio-logo-news_1_120x100

IAM Authenticator

AWS IAM 認証情報を使用して Kubernetes クラスターに対して認証を行うツール。

EKS_external-dns_120x100

外部 DNS

Kubernetes のイングレスおよびサービスに関する Route 53 サービスディスカバリを設定。

Kubernetes-detoure-titre-noir_120x100

SIG AWS

Kubernetes API への AWS 統合に焦点を当てたコミュニティ主導の SIG。

new_product_fargate

Virtual Kubelet

試用段階 – Kubernetes コントロールプレーンを使用して AWS Fargate でコンテナを実行。

Kubernetes に関するよくある質問

Q: Kubernetes クラスターとは何ですか?

Kubernetes クラスターは、コンテナを実行する EC2 コンピューティングインスタンスの論理グループです。クラスターは、コントロールプレーン (コンテナが実行される方法、時間、場所を管理するインスタンス) およびデータプレーン (コンテナが実行されるインスタンス) で構成されます。Kubernetes でコンテナやサービスを実行するには、その前にクラスターを定義する必要があります。

Q: Kubernetes ノードとは何ですか?

Kubernetes ノードは、Kubernetes クラスターの一部である単一のコンピューティングインスタンス (仮想マシン) です。インスタンスには、マスターとワーカーの 2 種類があります。マスターは、Kubernetes API サーバーをホストし、コンテナが実行される方法、時間、場所を管理します。ワーカーは、実際にコンテナが実行され、データが処理されるコンピューティングインスタンスです。

Q: Kubernetes ポッドとは何ですか?

Kubernetes ポッドは、Kubernetes がコンテナをコンピューティングインスタンス上で実行する手段です。これには、コンテナおよび実行方法に関する仕様、ネットワーク、ストレージが含まれます。ポッドは単一のコンテナの場合と、常に一緒に実行される複数のコンテナの場合があります。いつも単一のコンテナを実行する場合、ポッドは実行中のコンテナとみなすことができます。

Q: etcd とは何ですか?

etcd は、マシンの分散クラスター全体でデータを保存および共有できる分散キーバリューストアです。Kubernetes では etcd を使用してクラスターに関するデータを保存し、Kubernetes コントロールプレーン全体で共有できます。

Q: AWS は Kubernetes に対応していますか?

AWS では、簡単に Kubernetes を実行できます。Cloud Native Computing Federation (CNCF) によると、AWS はクラウドで Kubernetes を実行しているお客様が最も多く、Kubernetes のデプロイのほとんどが AWS で実行されています。AWS で簡単に Kubernetes を実行できるように、AWS は Kubernetes コミュニティと協力し、積極的に貢献しています。

AWS では、Kubernetes コントロールプレーンのインストールや運用が不要で、AWS で簡単に Kubernetes を実行できるマネージドサービス、Amazon Elastic Container Service for Kubernetes (EKS) が提供されています。

Q: AWS で Kubernetes を使用するにはどうすればよいですか?

AWS で Kubernetes を使用する方法は主に 2 つあります。Amazon EC2 仮想マシンインスタンスにおいて自分で実行する方法と、Amazon EKS サービスを使用する方法です。EC2 で Kubernetes を自分で実行する方法の詳細については、当社の Github ワークショップを参照してください。Amazon EKS を使用する方法の詳細については、製品ページを参照してください。

使ってみませんか?
AWS アカウントを作成する
ご不明な点がおありですか?
お問い合わせ