1.5.3.2.7. HyperShift Operator がインフラストラクチャーノードの設定を受け取らない
Red Hat Advanced Cluster Management または multicluster engine Operator が、インフラストラクチャーノードの nodeSelector や tolerations を使用して、インフラストラクチャーノードが選択された状態でインストールされても、HyperShift Operator のデプロイメントにその設定は反映されません。
multicluster engine のサブスクリプションが、nodeSelector と tolerations を使用してインフラストラクチャーノードに Pod を配置するように設定されている場合でも、HyperShift Operator Pod は、指定されたインフラストラクチャーノードではなく、通常のワーカーノードにスケジュールされます。
HyperShift Operator のデプロイメントでは、インフラストラクチャーノードの配置設定がサブスクリプションから自動的に伝播されません。
HyperShift アドオンをインストールした後、HyperShift Operator のデプロイメントを手動で適用してインフラストラクチャーノードセレクターと toleration を追加します。以下の例を参照してください。
nodeSelector:
node-role.kubernetes.io/infra: ""
tolerations:
- key: node-role.kubernetes.io/infra
operator: Exists
effect: NoSchedule
この問題を解決するには、次のコマンドをインフラストラクチャーノードの仕様を指定して実行し、hypershift namespace 内のオ Operator デプロイメントにパッチを適用します。
oc patch deployment operator -n hypershift --type=merge -p '{"spec":{"template":{"spec":{"nodeSelector":{"node-role.kubernetes.io/infra":""},"tolerations":[{"key":"node-role.kubernetes.io/infra","operator":"Exists","effect":"NoSchedule"}]}}}}'
手動でパッチを適用することで、Operator Pod がインフラストラクチャー要件を満たす適切なノードに配置されます。