Flink-Kubernetes-Operator 1.1.0中TaskManager replicas字段报错咨询
问题场景
已通过以下命令在GKE集群部署flink-kubernetes-operator-1.1.0:
helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.1.0/ helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator --set webhook.create=false
创建包含TaskManager replicas配置的FlinkDeployment时:
spec: ... taskManager: resource: memory: "4096m" cpu: 2 replicas: 2 ...
触发报错:
unknown field "replicas" in org.apache.flink.v1beta1.FlinkDeployment.spec.taskManager
查看对应release-1.1版本的CRD定义,确认taskManager字段支持integer类型的replicas,但实际部署报错,可按以下思路排查:
排查步骤
验证集群中实际安装的CRD结构
执行命令查看当前集群中FlinkDeployment CRD的完整schema,确认taskManager.replicas字段是否存在:kubectl get crd flinkdeployments.flink.apache.org -o yaml | grep -A 10 -B 5 "taskManager"如果输出中未包含replicas字段,说明CRD未正确安装,需重新应用对应版本的CRD文件。
确认FlinkDeployment的API版本匹配
检查你的FlinkDeployment YAML文件头部的apiVersion是否为flink.apache.org/v1beta1,确保与CRD定义的版本一致。重新部署对应版本的CRD
若CRD未正确安装,可手动获取release-1.1版本的CRD文件(flinkdeployments.flink.apache.org-v1.yml),然后执行:kubectl apply -f flinkdeployments.flink.apache.org-v1.yml完成后再次验证CRD结构,再尝试创建FlinkDeployment。
检查Webhook关闭的影响
安装Operator时关闭了webhook(--set webhook.create=false),部分版本中关闭webhook可能导致CRD的字段验证逻辑异常。可尝试重新安装Operator并开启webhook,测试是否解决问题:helm uninstall flink-kubernetes-operator helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator
内容的提问来源于stack exchange,提问作者Erwin2022

