Tanzu Kubernetes Grid(TKGm)でコンテナランタイムの設定を変更する

自分備忘録用メモ。TKGm で利用されているコンテナランタイムcontainerd の設定を変更する方法


デフォルト値の確認

TKGm v1.3.0 の環境でWorkload Cluster を作成し、デフォルトの/etc/containerd/config.toml を確認します。
## template: jinja

# Use config version 2 to enable new configuration fields.
# Config file is parsed as version 1 by default.
version = 2

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "projects.registry.vmware.com/tkg/pause:3.2"


Overlay ファイルの作成/Workload Cluster のデプロイ

新規にWorkload Cluster を作成する場合、こちら「Configure Tanzu Kubernetes Cluster Plans」を参考にoverlay 用のYAML ファイルを作成します。
ここでは試しにレジストリのエンドポイント(Configure Registry Endpoint)を複数登録してみます。~/.tanzu/tkg/providers/infrastructure-vsphere/ytt のディレクトリ配下に作成していきます。
$ cat containerd-multi-image-registry.yaml
#@ load("@ytt:overlay", "overlay")

#@overlay/match by=overlay.subset({"kind":"KubeadmControlPlane"})
---
spec:
  kubeadmConfigSpec:
    preKubeadmCommands:
    #@overlay/append
    - echo '  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]' >> /etc/containerd/config.toml
    #@overlay/append
    - echo '    endpoint = ["https://registry-1.docker.io"]' >> /etc/containerd/config.toml
    #@overlay/append
    - systemctl restart containerd

#@overlay/match by=overlay.subset({"kind":"KubeadmConfigTemplate"})
---
spec:
  template:
    spec:
      preKubeadmCommands:
      #@overlay/append
      - echo '  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]' >> /etc/containerd/config.toml
      #@overlay/append
      - echo '    endpoint = ["https://registry-1.docker.io"]' >> /etc/containerd/config.toml
      #@overlay/append
      - systemctl restart containerd

ファイルを作成したあと、Workload Cluster を作成します。
tanzu cluster create ibanez --tkr v1.20.4---vmware.1-tkg.1 --file .tanzu/tkg/clusterconfigs/cluster-ibanez-config.yaml -v 6

作成したWorkload Cluster のControl Plane、Worker ノードにログインし、設定がなされているか確認します。
  • Control Plane
ssh -i .ssh/tkgm-lab capv@<control-plane-node>
$ cat /etc/containerd/config.toml
## template: jinja

# Use config version 2 to enable new configuration fields.
# Config file is parsed as version 1 by default.
version = 2

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "projects.registry.vmware.com/tkg/pause:3.2"


  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://registry-1.docker.io"]

  • Worker 
ssh -i .ssh/tkgm-lab capv@<worker-node>
$ cat /etc/containerd/config.toml
## template: jinja

# Use config version 2 to enable new configuration fields.
# Config file is parsed as version 1 by default.
version = 2

[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    sandbox_image = "projects.registry.vmware.com/tkg/pause:3.2"


  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://registry-1.docker.io"]

無事に反映されているようです。

このブログの人気の投稿