免責事項:これは英文の記事「Unable to Provision Windows Operating System (OS) Worker Nodes in vSphere Supervisor 」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
vSphere Supervisor クラスタ内のワークロードクラスタに Windows ノードプールを追加しようとした際に、以下のいずれかのエラーが返されます:
Error from server (Forbidden): error when creating "<workload cluster name>": admission webhook "tkr-resolver-cluster-webhook.tanzu.vmware.com" denied the request: Could not resolve KR/OSImage
Missing compatible KR/OSImage for the cluster
vSphere Supervisor
vKR v1.31 and higher
Windows Server 2022
本問題は、以下のいずれかの原因により発生する可能性があります:
ノードプールで Windows OS を使用することを指定するアノテーションは、以下のとおり os-type=windows を使用して一致させる必要があります:
- class: node-pool
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: os-type=windows
カスタム Windows イメージがシステムで検出されない場合は、以下の例のようにアノテーション内でコンテンツライブラリの ID を指定する必要があります:
- class: node-pool
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: os-type=windows, content-library=cl-<ID>
以下のコマンドを使用して、コンテンツライブラリ ID を確認できます:
kubectl get contentlibraryitem -A
clitem-<ID> <image-name> cl-<ID> OVF
kubectl get contentlibrary -A
<namespace> cl-<ID> <name in vsphere> <Local/Subscribed>
アノテーションを修正後、Windows ノードプール内の次回のワーカーノード作成は正常に完了するはずです。
それでも成功しない場合は、以下のドキュメントに記載されているすべての要件が満たされていることを確認してください:
Windows ノードプールを使用した TKG クラスタのプロビジョニング
Supervisor クラスタのコンテキストに接続した状態で、カスタム Windows イメージが osImage として存在しない場合:
kubectl get osimages
kubectl get contentlibraryitem -A
kubectl get contentlibrary -A
Windows ノードプールを使用した TKG クラスタのプロビジョニング
--------
「VMware は vSphere Kubernetes Service Image Builder に関する問題についてはサポートを提供しますが、イメージのカスタマイズおよびカスタムアプリケーションに起因する問題については、お客様の責任となります。」