EKSとは?
2017年にAWS上でKubenetesを運用するためのネイティブのフルマネージドサービスです。今まではEC2上にKubenetesをインストールして運用していた企業が多かったのですが、それが本質的ではない事なのでできました。
なお、EKSはECSと違ってあくまでオープンソースのKubenetesをベースとして作られているためECSのように独自用語は基本的にはありません。
イメージ図
EKSクラスター(Kubenetesクラスター)を構築して、クラスタ上にコンテナアプリケーションをデプロイして実行できます。
提供機能
コントロールプレーン
運用難易度の高い「Kubenetesマスタ」をマネージドで提供
オープンソース(ECSにはない特徴)
EKSはオープンソースなのでソースを読んで調査をすることが可能です。
EKSを使うメリット
クラスター内外の通信設定をしやすい
同じくAWSのkubenetesサービスであるECSを使いたい場合は別途クラスター内外の通信のためにインフラ構築が必要になるのですが、EKSならそのインフラ構築が不要になります。
Kubenetesコントロールプレーンの管理をAWSに委ねることができる。
Kubenetesを運用する上で最も難しいことはコントロールプレーンを健全に保つこと。それをAWSに委ねれるのはメリットです。
Fargateが使える点
Kubenetesノードを動かす実行環境としてEC2ではなく、Fargate(フルマネージドなコンテナ実行環境)を選択できること。
操作
kubectlを使用します。
eksctlとは?
簡単にEKSクラスターを作成できるコマンドラインツールです。
EKSクラスターを作成する。
以下のコマンドを打つだけで実行できます。(なお、作成にはさまざまなAWSリソースを生成するため20分程度かかります。)
1 |
eksctl create cluster |
以下のようにオプション込みで指定すると良いでしょう。
1 |
eksctl create cluster --name {クラスタ名} --region {リージョン名(東京リージョンなど)} --profile {AWSのプロファイル名} |
特にprofileを指定しないとデフォルトprofileが使われてしまうので注意です。
仕組み
裏側ではcloudformationが使われています。
デフォルトの作成条件
自動生成された名前のクラスタ
デフォルトではクラスタ名はランダムに生成された文字列になります。
m5.largeの2台のworker nodes
EC2インスタンスは結構良いのが使われます。
EC2は公式のEKS AMI
リージョンはus-west-2
東京リージョンではないのでもし東京リージョンで作りたい場合は指定してあげる必要があります。
EKS用のVPCが作成される(Quotaに注意)
VPCの数にはQuotaという上限があります。
カスタマイズ
以下のコマンドを打ってyamlファイルを作成してこれをいじってカスタマイズを行います。
1 |
eksctl create cluster -f cluster.yml |
この記事へのコメントはありません。