AWS での Kubernetes

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

kuberneteslogo

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

AWS では、スケーラブルで可用性の高い仮想マシンインフラストラクチャ、コミュニティによってサポートされたサービス統合、Amazon Elastic Kubernetes Service (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 Kubernetes Service (EKS) が提供されています。

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

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

構築を始めましょう。
AWS アカウントを作成する
ご不明な点がおありですか?
お問い合わせ