🚀
kindでセルフホストリポジトリからImagePullする方法
セルフホストリポジトリを使う場合は、アクセス先ドメインの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