公式ドキュメント
https://github.com/rancher/k3d/blob/master/docs/examples.md
- LinuxとMacとで、ホームディレクトリのパスは読み替える
環境
- マック
やること
Docker上でPrivateRegistryを起動して、k3dでのPodデプロイ時にPrivateRegistryからPullする
PrivateRegisty用のボリューム作成
docker volume create local_registry
❯docker volume ls | grep local_registrylocal
local_registry
PrivateRegistryコンテナ起動
- サブ名はは
registry.local - ートはポ
5000コンテナ側かもローカル側かも
docker container run -d --name registry.local -v local_registry:/
var / lib / registry --restart always -p 5000:5000 registry:2
ローカルに設定ファイル置き場を作成
mkdir -p〜/ .k3d
k3dコンフィグをローカルに作成
vim〜/ .k3d / config.toml.tmpl
〜/ .k3d / config.toml.tmpl
#元のセクション:変更なし
[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起動
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を使用するための環境変数をセット
エクスポートKUBECONFIG = "$(k3d get-kubeconfig --name = 'k3s-default')"
k3dとDockerとネットワークを連結
docker network connect k3d-k3s-default registry.local
hostsへPrivateRegistry名を定義
❯tail -n 1 / etc / hosts
127.0.0.1 registry.local
イメージがPushできるか確認
docker pull nginx:latest
Dockerタグnginx:latest registry.local:5000 / nginx:latest
docker push registry.local:5000 / nginx:latest
PrivateRegistryからPullしてくるDeployment
猫<< 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
プルできたか確認
〜❯❯❯kubectl get pod
名前READYステータス再起動年齢
nginx-test-registry-7f6c7b79fb-mhxpm 1/1実行中0 5m36s
