公式ドキュメント
https://github.com/rancher/k3d/blob/master/docs/examples.md
- LinuxとMacとで、ホームディレクトリのパスは読み替える
環境
- マック
やること
Docker上でPrivateRegistryを起動して、k3dでのPodデプロイ時にPrivateRegistryからPullする
PrivateRegisty用のボリューム作成
1 |
docker volume create local_registry |
1 2 |
❯docker volume ls | grep local_registrylocal local_registry |
PrivateRegistryコンテナ起動
- サブ名はは
registry.local
- ートはポ
5000
コンテナ側かもローカル側かも
1 2 |
docker container run -d --name registry.local -v local_registry:/ var / lib / registry --restart always -p 5000:5000 registry:2 |
ローカルに設定ファイル置き場を作成
1 |
mkdir -p〜/ .k3d |
k3dコンフィグをローカルに作成
1 |
vim〜/ .k3d / config.toml.tmpl |
〜/ .k3d / config.toml.tmpl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#元のセクション:変更なし [plugins.opt] パス= "{{.NodeConfig.Containerd.Opt}}" [plugins.cri] stream_server_address = "{{.NodeConfig.AgentConfig.NodeName}}" stream_server_port = "10010" {{-if .IsRunningInUserNS}} disable_cgroup = true disable_apparmor = true restrict_oom_score_adj = true {{ 終わり -}} {{-if .NodeConfig.AgentConfig.PauseImage}} sandbox_image = "{{.NodeConfig.AgentConfig.PauseImage}}" {{ 終わり -}} {{-.NodeConfig.NoFlannelでない場合}} [plugins.cri.cni] bin_dir = "{{.NodeConfig.AgentConfig.CNIBinDir}}" conf_dir = "{{.NodeConfig.AgentConfig.CNIConfDir}}" {{ 終わり -}} #セクションを追加:追加のレジストリとエンドポイント [plugins.cri.registry.mirrors] [plugins.cri.registry.mirrors。 "registry.local:5000"] エンドポイント= ["http://registry.local:5000"] |
k3d起動
1 2 3 4 5 6 7 |
CLUSTER_NAME = k3s-default k3d作成\ --name $ {CLUSTER_NAME} \ -0を待つ\ --auto-restart \ --volume〜/ .k3d / config.toml.tmpl:/var/lib/rancher/k3s/agent/ etc/containerd/config.toml.tmpl |
kubectlコマンドをk3sを使用するための環境変数をセット
1 |
エクスポートKUBECONFIG = "$(k3d get-kubeconfig --name = 'k3s-default')" |
k3dとDockerとネットワークを連結
1 |
docker network connect k3d-k3s-default registry.local |
hostsへPrivateRegistry名を定義
1 2 |
❯tail -n 1 / etc / hosts 127.0.0.1 registry.local |
イメージがPushできるか確認
1 2 3 |
docker pull nginx:latest Dockerタグnginx:latest registry.local:5000 / nginx:latest docker push registry.local:5000 / nginx:latest |
PrivateRegistryからPullしてくるDeployment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
猫<< EOF | kubectl apply -f- apiVersion:apps / v1 種類:展開 メタデータ: 名前:nginx-test-registry ラベル: アプリ:nginx-test-registry スペック: レプリカ:1 セレクタ: matchLabels: アプリ:nginx-test-registry テンプレート: メタデータ: ラベル: アプリ:nginx-test-registry スペック: コンテナ: -名前:nginx-test-registry 画像:registry.local:5000 / nginx:latest ポート: -containerPort:80 EOF |
プルできたか確認
1 2 3 |
〜❯❯❯kubectl get pod 名前READYステータス再起動年齢 nginx-test-registry-7f6c7b79fb-mhxpm 1/1実行中0 5m36s |