vSphere with Tanzu のスーパーバイザークラスタを構成し(クラスタネットワークには NSX-T を使用)、その後 yaml から TKC(Tanzu kubernetes)をデプロイしようとしたところ、"作成中" ステータスでスタックしてしまう状況に陥った。
おかしいな... と思い、切り分けのために何の変哲もない nginx pod を TKGs にデプロイしてみたところ、同じく Pending
でスタックする状況に。
kubectl describe
でログを見てみると、
[root@hoge ~]# kubectl describe po nginx-pod-7fb7fd49b4-cj9qv
Name: nginx-pod-7fb7fd49b4-cj9qv
Namespace: lab-ns-001
Priority: 0
Node: esxi02-ifrit.myhomelab.test/
Labels: app=nginx
pod-template-hash=7fb7fd49b4
Annotations: kubernetes.io/psp: wcp-default-psp
vmware-system-ephemeral-disk-uuid: 6000C29b-c785-ec2d-c9cc-337908f6fb50
vmware-system-image-references: {"nginx":"nginx-3a1d01bf5d03a391d168f63f6a3005ff4d17ca65-v35009"}
vmware-system-vm-moid: vm-5033:e85e361f-1be2-4334-bde3-df7a671ee2f0
vmware-system-vm-uuid: 5030da1d-5e4c-1ba1-72c6-514ffe22746b
Status: Pending
IP:
IPs: <none>
Controlled By: ReplicaSet/nginx-pod-7fb7fd49b4
Containers:
nginx:
Image: nginx:alpine
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-v9qqm (ro)
Conditions:
Type Status
PodScheduled True
Volumes:
kube-api-access-v9qqm:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 77s default-scheduler Successfully assigned lab-ns-001/nginx-pod-7fb7fd49b4-cj9qv to esxi02-ifrit.myhomelab.test
Normal Image 77s image-controller Image nginx-3a1d01bf5d03a391d168f63f6a3005ff4d17ca65-v35009 bound successfully
Normal Pulling 67s kubelet Waiting for Image lab-ns-001/nginx-3a1d01bf5d03a391d168f63f6a3005ff4d17ca65-v35009
Normal Pulled 15s kubelet Image lab-ns-001/nginx-3a1d01bf5d03a391d168f63f6a3005ff4d17ca65-v35009 is ready
Warning FailedRealizeNSXResource 5s (x11 over 77s) nsx-container-ncp Project d0196564-268e-402a-ba50-d738e432c7be is not realized: PROJECT_TIER1_NOT_REALIZED
Image pull はできてるっぽいので NW に問題はなさそうだが、やはり気になるのは Events
の
Warning FailedRealizeNSXResource 5s (x11 over 77s) nsx-container-ncp Project d0196564-268e-402a-ba50-d738e432c7be is not realized: PROJECT_TIER1_NOT_REALIZED
の部分。PROJECT_TIER1_NOT_REALIZED
というエラーはググっても全く引っかからなかったが、FailedRealizeNSXResource
とか怒られているので、リソース周りの可能性は高そう。
解決策
いろいろとイジったところ、NSX Edge(= NSX-T Manager から作成する Edge VM)のサイズを Large
にしたところ、Pod も TKC も正常にデプロイできるようになった。
#それまでは Medium サイズだった
今回は vSphere 7.0U3
+ NSX-T 3.2.1
の組み合わせであったが、あとあと TKGs with NSX-T の最小要件を見てみたところ、確かに Edge については Large
と記載が...
Edge の Large
というとそれなりにデカいので、自宅ラボとかで遊ぶには少しハードルが高いなあ、、と思った次第。