EKSをサクッと使おうと思ったら思いの外ハマったことを振り返りつつシェアしようと思います。構成管理に使うべきツールの正解がわからないEKSを構築、運用する上で構成管理のコストは無視できない概念です。何より、日々の運用が大変なものは選びたくありません。今年の10月にこちらのアナウンスで公式ツールに採用された今、特に大きな理由がない限りはeksctlを使っておけば安牌のように思います。EKSの技術選定をしていたのは今年の夏頃なのですが、当時はeksctlは公式のツールではなくサードパーティのツールとして提供されていました。この時点でEKSの構成管理を行うには大きく分けて3種類の方法がありました。eksctlは内部的にCloudFormationとkubectlを呼び出しているeksctlは当時から非常に魅力的な選択肢だったのですが、やはり抽象化されすぎている印象が拭えず踏み切れないまま、このときは一旦Terraformで動かし始めることにしました。Kubernetes以外に知らないといけないことが多すぎるさて、eksctlを使わないので、EKSを構築する上で知らないといけない多くのことをノウハウとして蓄積する必要があります。甘えといえば甘えですが、AWSの柔軟かつ自由度の高いIAMは、裏を返すと検証コストの高い存在でもあります。逃げ道はなく、基本的にはがんばるしかありませんでした。eksctlのプリセットを読み込むことで自分たちの実現したいポリシーに必要なものを理解することができたのは良かったかなと思います(本来そういう使い方をすべきではないのはそうなんですが)。VPCやサブネットへのタグ付けなど、とにかく制約条件が多いAWS的にそういう実装をするほうが黒魔術にならないんだろうなというのは理解しつつも、タグつけるのかぁ。みたいな感じで初期構築のトラシューが結構たいへんだった記憶があります。このへんをやっていると、AWSが難しいのかEKSが難しいのかKubernetesが難しいのかよくわからなくなってきます。クラスター作成時にRBACのAdminの指定ができない(CloudFormationを作成したロールが管理者になる)https://github.com/aws/containers-roadmap/issues/554Issueも作ったんですが、クラスター作成時に「このロールの人にkubectl叩ける権限をあげてください」という指定ができるようになってほしいです。CloudFormationのスタックを作成する権限を使ってしまうと多くの場合Adminレベルの強い権限を渡さないといけないため、スコープとしてKubernetesクラスターの管理をするには強すぎる権限を一時的にでも与えることになってしまいます。いい状態とは言えないので、改善されると良いなあと思っています。ワーカーノード追加するためには実質EC2ノードを自分たちで管理しないといけなかった(過去形)マネージドノードグループが追加されたので今はこの必要はありません。https://gist.github.com/inductor/2959e397a59be756ba8b6afab0db0a81多少ポリシーは色々違いますが記述量が全く違いますよね・・・。Roadmapが立ち上がってから比較的昔からずっと要望があったこちらのIssueがついにCloseされました。Fargateについてはたくさん書きたいことがありましたが@amsy810氏のブログに詳しく書かれているのでまあいいか、という感じです。現状だとまだCLB/NLBに対応していないのと、eksctlにattachPolicyARNsがほしいなと個人的には思いました。YAML)を使ったとしても初期構築のいずれかの部分は命令的にやらないといけない部分がある先日のアナウンスを踏まえてeksctlを見直しているのですが、まだいくつかクラスター管理において課題に感じていることがあります。全部宣言的に構成管理をしたいクラスター作成からアプリケーションの最も基本的なYAMLを流すまでの流れを全部Declarativeにやりたい(クラスター構築して引き渡すまでを全部自動化したい)のですが、現状権限周りや初期の部分で一部命令的に実行する必要のある箇所があってGitOpsなどを使ったクラスター自体の管理とアプリケーション自体の管理を始めるまでに少し手数があります。https://www.weave.works/blog/automate-eks-cluster-configuration-with-gitops-and-eksctl解決策は?ノードグループの管理まで全部含めて宣言的に管理したいなあ、具体的にはeksctlにもapply句が増えてくれればCRUDの忖度がいらないので便利になるだろうな、と思っています。KubeConのときにWeaveworksの人にそういう話をしたら、わかるけどEKS側でAPI増やしてくれないと厳しい、と言われました。upLoginユーザーは見つかりませんでした。