GitLab デモ用の AWS EKS クラスタを作成する

アカウント情報

現時点では、AWS リソースを利用するための共有 AWS アカウントは用意されていません。当面は個人のクレジットカードでアカウントを開設し、経費精算してください。無料トライアルから始めることもできます。チーム共有アカウントについては検討中です。

クラスタの作成

EKS でクラスタをセットアップするには多くの手順がありますが、作業をオーケストレーションするのにかなり優れたサードパーティ製スクリプトが見つかりました。それは eksctl と呼ばれるものです。スクリプトを実行する場所のローカルにこれが必要です。また、クラスタの作成と GitLab のデモ用設定の手間を軽減するために私たちが作成したユーティリティ群(単なるシェルスクリプト)もあります。これらは https://gitlab.com/dangordon/eks-utils.git にあります。

これらのスクリプトのうち、create-cluster.sh スクリプトは、使用するクラスタを作成するための eksctl のラッパーとして利用できます。

クラスタを GitLab にアタッチする

GitLab には現在、Kubernetes クラスタをアタッチするための AWS EKS への組み込みインテグレーションはありません。EKS クラスタを GitLab にアタッチするには、Kubernetes の「Add Kubernetes Cluster」ページで「Add existing cluster」オプションを使用する必要があります。

これを行うには、クラスタ固有の情報(API URL エンドポイント、CA 証明書、Service Token)が必要です。eks-utils スクリプト は、必要な詳細情報を取得するために作成されました。また、クラスタ名も必要です。これは GitLab が参照するためのものなので何でもかまいませんが、両者を関連付けやすくするため、EKS で命名したクラスタ名と同じにすることをお勧めします。

このプロセスとドキュメントは進化させる必要があり、また進化していくべきです。これは MVC です。可能性としては、たとえば eks-utils の代わりに、クラスタの作成と GitLab への追加を行う kubectl プラグインとして書き直すことが考えられます。DigitalOcean の Eddie Zaneski 氏が彼の GitLab Commit デモ のために 書いたもの を参考にしてください。