株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

公式ドキュメント

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

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)