🚀

kindでセルフホストリポジトリからImagePullする方法

2022/12/03に公開

セルフホストリポジトリを使う場合は、アクセス先ドメインのCA証明書をクラスタにインストールしておく必要がある。
それは、Kindでなくとも、他のKubernetesミドルでも同様だと思う。

KindクラスタにCA証明書をあてる

起動時のConfigにextraMountsでホスト側にあるCA証明書をマウントさせる

cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  extraMounts:
  - containerPath: /etc/ssl/certs/ca.crt
    hostPath: /etc/ssl/certs/ca.crt
- role: worker
  extraMounts:
  - containerPath: /etc/ssl/certs/ca.crt
    hostPath: /etc/ssl/certs/ca.crt
EOF

セルフホストリポジトリにイメージを登録

harborを使っている

docker pull nginx
docker tag nginx harbor.vamdemic.local/library/nginx:latest
docker push harbor.vamdemic.local/library/nginx:latest

リソース作成

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: nginx
spec:
  containers:
  - name: nginx
    image: harbor.vamdemic.local/library/nginx:latest # ←ここをいじる
    ports:
    - containerPort: 80
kubectl apply -f  nginx.yaml

起動した

k get pod -n nginx nginx
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          8m38s

ImageもセルフホストリポジトリからPullしてきていることが分かる

k -n nginx describe pod nginx | grep image
  Normal  Pulling    9m1s   kubelet            Pulling image "harbor.vamdemic.local/library/nginx:latest"
  Normal  Pulled     8m59s  kubelet            Successfully pulled image "harbor.vamdemic.local/library/nginx:latest" in 1.669038268s

Discussion