k3sup とは
alexellis/k3sup: bootstrap Kubernetes with k3s over SSH < 1 min 🚀
k3supは、ローカルまたはリモートのVMでk3を使用してゼロからKUBECONFIGに移行するための軽量ユーティリティです。 必要なのは、sshアクセスとk3supバイナリだけで、kubectlアクセスをすぐに取得できます。 このツールはGoで記述されており、Linux、Windows、MacOS、さらにはRaspberryPi用にクロスコンパイルされています。
(Google 翻訳)
1 分未満との謳い文句は伊達じゃない。
Mac から EC2 の Kubernetes
とりあえず k3sup のインストール。
kubernetes のセットアップとしては、 k3sup install
のみ。
ちゃんと覚えていないけど、これだけで /usr/local/bin/k3sup
に入ったのではないかな。
curl -sLS https://get.k3sup.dev | sh
EC2 インスタンの起動。パラメータはよしなに。
(セキュリティグループは、インバウンドで、22 と 6443 が開いていればとりあえずアクセスできるのかも?下記は全開でやってしまった...あとでちゃんと調べる。)
EC2_INSTANCE_ID=$(aws ec2 run-instances \
--image-id ami-06098fd00463352b6 \
--count 1 \
--instance-type c5a.xlarge \
--key-name your-key-pair-name \
--security-group-ids sg-0b0ab36abc07d8119 \
--tag-specifications 'ResourceType= instance,Tags=[{Key=Name,Value=k3sup}]' \
--output text \
--query 'Instances[0].InstanceId')
起動チェック。pending から running になったら次へ。
watch -n 3 \
aws ec2 describe-instances \
--instance-ids=${EC2_INSTANCE_ID} \
--output text \
--query 'Reservations[0].Instances[0].State.Name'
Public IP を取得。
EC2_INSTANCE_PUBLIC_IP=$(aws ec2 describe-instances \
--instance-ids=${EC2_INSTANCE_ID} \
--output text \
--query 'Reservations[0].Instances[0].PublicIpAddress')
k3sup 実行!
k3sup install \
--ip ${EC2_INSTANCE_PUBLIC_IP} \
--user ec2-user \
--ssh-key ~/.ssh/your-key-pair-name.pem
kubeconfig
というファイルがカレントディレクトリに作成されているので、 kubectl
をダーンっと。
kubectl --kubeconfig=kubeconfig get pod -A -w
以上。