この記事は MicroAd Advent Calendar 2024 と Kubernetes Advent Calendar 2024 の4日目の記事です。
今回は、K3dをProxy環境下で利用する際にハマったのでその解消法について、 CloudNative Days Winter 2024 では、Rancherの中の人と勘違いされてたやっさんから紹介します。
(´-`).。oO( export HTTP_PROXY で終わりでは、、 )
って思うやん?違うんです。。。
では始めていきます。
はじめに
K3dは、Dockerコンテナ内でKubernetesの軽量版のK3sのクラスタをシングルノードまたはマルチノードで動かすためのツールです。K3sでKubernetesクラスタを構成することもあって省スペース&リソースで稼働するので、CIでシングルノードだけでなくマルチノードで構成したい際にオススメです(Helmチャートのテストとか)。
また、K3dで構築されるK3sクラスタにはローカルストレージプロバイダーが付属していてK3dコマンドを実行するノード時のローカルストレージをPVとして払い出してくれるPVCがデフォルトで付属するので非常に便利です1。
ネットワーク周りについては、K3d側にサービス公開用の機能として、traefik(とらふぃっく)を使ったIngressやNodePortが利用できるようになっています2。
K3d自体のインストールも簡単で、ローカル端末なら Homebrew 、Chocolatey、Scoop に対応しています。またサーバ用途ならインストールスクリプトも用意しているので以下で一発です3。
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash または curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.7.5 bash
インストールが完了すると、k3dコマンドが利用できるようになります。
❯ k3d --help https://k3d.io/ k3d is a wrapper CLI that helps you to easily create k3s clusters inside docker. Nodes of a k3d cluster are docker containers running a k3s image. All Nodes of a k3d cluster are part of the same docker network. Usage: k3d [flags] k3d [command] Available Commands: cluster Manage cluster(s) completion Generate completion scripts for [bash, zsh, fish, powershell | psh] config Work with config file(s) help Help about any command image Handle container images. kubeconfig Manage kubeconfig(s) node Manage node(s) registry Manage registry/registries version Show k3d and default k3s version Flags: -h, --help help for k3d --timestamps Enable Log timestamps --trace Enable super verbose output (trace logging) --verbose Enable verbose output (debug logging) --version Show k3d and default k3s version Use "k3d [command] --help" for more information about a command.
上記のヘルプにもあるように、completionにも対応してるので補完が効くのでとても便利です。
それでは本題のProxy環境下でのハマりポイントの解決の話の前に、、、、
K3sの紹介を軽く触れるので、「K3sの話はいいよ」って方は目次から飛んでください。
- はじめに
- K3s・K3dとは何か?
- 🙃ハマりポイント:クラスタ構築
- 🙃ハマりポイント:コンテキストが行方不明になる問題
- 🙃ハマりポイント:K3sクラスタノードにどうやってはいったらよいの?
- 最後に
- 補足
-
K3dというよりはK3sの機能ですいが詳細はこちらを参照ください
docs.k3s.io↩ -
詳細は以下を参照ください
docs.k3s.io↩ -
詳細なインストール方法については、以下を参照ください
https://k3d.io/v5.7.5/#releases↩