こんにちは。運用開発グループの松田です。
普段はインフラエンジニアとして Symphonict サービスのインフラ設計や運用開発を行っています。
今回は Amazon EKS で提供されている機能である EKS Connector を利用して、おうち Kubernetes 環境を EKS に接続してみたいと思います。
EKS Connector とは
EKS Connector は 2021 年 11 月に一般公開となった EKS の機能で、EKS 以外の Kubernetes クラスタの情報を AWS コンソールから確認することが可能となります。
これにより、AWS 外の Kubernetes サービス (Google Cloud GKE, Microsoft Azure AKS 等) のステータスやワークロードを統合的に管理することができるようになります。
実際に接続してみる
検証環境
今回は自宅の開発 PC に minikube でオールインワンクラスタを作成し、AWS 上の EKS に接続します。
接続手順
1. 以下のドキュメントに従い必要な IAM ロールを作成 (手順は省略)
https://docs.aws.amazon.com/eks/latest/userguide/connector_IAM_role.html
2. EKS クラスタを作成
eksctl コマンドを利用して EKS クラスタを作成します
$ eksctl create cluster --name test-cluster --region ap-northeast1
3. minikube クラスタを EKS に登録
eksctl コマンドを利用して EKS に対しておうち Kubernetes を登録します
$ eksctl register cluster --name minikube-cluster --provider other
2022-07-06 06:57:34 [ℹ] creating IAM role "eksctl-20220706065734503544"
2022-07-06 06:57:51 [ℹ] registered cluster "minikube-cluster" successfully
2022-07-06 06:57:51 [ℹ] wrote file eks-connector.yaml to /root
2022-07-06 06:57:51 [ℹ] wrote file eks-connector-clusterrole.yaml to /root
2022-07-06 06:57:51 [ℹ] wrote file eks-connector-console-dashboard-full-access-group.yaml to /root
2022-07-06 06:57:51 [!] note: "eks-connector-clusterrole.yaml" and "eks-connector-console-dashboard-full-access-group.yaml" give full EKS Console access to IAM identity "arn:aws:iam::123456789012:user/XXXXXXXX", edit if required; read https://docs.aws.amazon.com/eks/latest/userguide/connector-grant-access.html for more info
2022-07-06 06:57:51 [ℹ] run `kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-group.yaml` before 09 Jul 22 06:57 UTC to connect the cluster
この時点では minikube クラスタは “保留中” となっている
4. minikube 側に設定を投入
# curl -o eks-connector-clusterrole.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector-console-roles/eks-connector-clusterrole.yaml
# kubectl apply -f eks-connector.yaml,eks-connector-clusterrole.yaml,eks-connector-console-dashboard-full-access-clusterrole-binding.yaml
5. EKS コンソールから状態確認
EKS コンソールから minikube クラスタが登録されたことが確認できました!
まとめ
今回は EKS Connector を利用しておうち Kubernetes 環境を EKS に接続してみました。
今後ハイブリットクラウドやマルチクラウドが増えていく中で、EKS 上で集中管理することができると運用が楽になると思うので皆さんもお試しください。
参考ドキュメント
https://docs.aws.amazon.com/eks/latest/userguide/eks-connector.html