【Day14】kubeconfigを極めよ!〜EKSとの対話をつかさどる秘伝の書〜
⛩️ はじめに:kubectlがクラスタと会話できる理由
EKS道場のこれまでの修行では、当然のように kubectl を使ってクラスタを操作してきました。しかし──
kubectlは、どうやってEKSクラスタと通信しているのでしょう?
その秘密が詰まった「巻物」こそ、kubeconfig です!
📜 kubeconfigとは何か?
簡単に言えば、kubectlにとっての 設定ファイル。
「誰が(user)、どのクラスタに(cluster)、どう接続するか(context)」という情報が書かれています。
🔍 kubeconfigの三大構成要素を解き明かせ!
┌─────────────┐
│ Context │
│─────────────│
│ name: dev │
│ context: │
│ cluster: A │──────────────────┐
│ user: U │──────────────────|────┐
└──────────── ┘ | │
| |
┌───────────────────────┐ | │
│ Cluster │ ◄┘ |
│───────────────────────│ |
│ name: A | |
│ server: https://... | |
│ certificate-authority | |
└───────────────────────┘ |
|
┌─────────────────────────┐ |
│ User │ |
│─────────────────────────│ |
│ name: U │ |
│ exec: aws eks get-token │◄─────┘
└─────────────────────────┘
このように、Contextは Cluster と User の組み合わせです。
kubectl は現在の context にしたがって、適切なクラスタにアクセスします。
🧪 実践:Contextを確認してみよう
kubectl config get-contexts
kubectl config current-context
CURRENT NAME CLUSTER AUTHINFO
* dev eks-dev aws-user
prod eks-prod aws-prod-user
切り替えたいときは:
kubectl config use-context prod
🧠 そもそも、EKSの kubeconfig はどうやって作られた?
実は以下のコマンドで作られています:
aws eks update-kubeconfig --name your-cluster
これにより、以下のような「User(認証)」情報が埋め込まれます:
users:
- name: arn:aws:iam::123456789012:role/eks-admin
user:
exec:
command: aws
args:
- eks
- get-token
- --cluster-name
- your-cluster
これは、kubectl が IAM 認証を通じて EKS にアクセスできるようにする仕組みです。
🔄 kubeconfig を切り替えて使いたいときは?
複数の kubeconfig をマージすることもできます。
export KUBECONFIG=~/.kube/dev.yaml:~/.kube/prod.yaml
kubectl config view --merge --flatten
また、個別に切り替えて使いたいときは --kubeconfig オプションも便利です。
kubectl get pod --kubeconfig ~/.kube/prod.yaml
📌 まとめ:kubectlの背後にある「対話の術式」
kubeconfig は、クラスタとの通信設定が書かれた巻物!
- Context = Cluster + User の組み合わせ。
- AWS IAMを使うEKSなら、aws eks get-token 経由で自動認証。
- 複数クラスタや環境を切り替える術も身につけた!
次回予告 📢:完走おめでとう!14日間のEKS修行を振り返ろう
2週間のEKS道場もこれにて終了となります。
ここまで学んだことを振り返って、自分の成長を実感しましょう🔥
よければフォロー&いいねお願いします🙏
- 「面白かった」「続きが気になる!」と思ったらLGTM👍
- コメントで「聞きたい内容」「つまずきポイント」などもぜひ教えてください!
それではまた明日、EKS道場でお会いしましょう!押忍🔥