I'm trying to use Flink Kubernetes Operator with F...
# random
v
I'm trying to use Flink Kubernetes Operator with Flink 1.18 but when submitting a deployment file I get
Copy code
The FlinkDeployment "app-deployment" is invalid: spec.flinkVersion: Unsupported value: "v1_18": supported values: "v1_13", "v1_14", "v1_15", "v1_16", "v1_17
I am running version 1.6.0 of Flink K8 operator:
Copy code
[INFO] Starting Flink Kubernetes Operator (Version: 1.6.0, Flink Version: 1.17.1, Rev:ebb1fed, Date:2023-08-10T14:33:52+02:00)
[INFO] OS current user: flink
[INFO] JVM: OpenJDK 64-Bit Server VM - Eclipse Adoptium - 11/11.0.20+8
[INFO] Arch: amd64
[INFO] Maximum heap size: 247 MiBytes
[INFO] JAVA_HOME: /opt/java/openjdk
[INFO] JVM Options:
[INFO]    -Dlog4j.configurationFile=/opt/flink/conf/log4j-operator.properties
[INFO] Program Arguments: (none)
[INFO] Classpath: ./flink-kubernetes-standalone-1.6.0.jar:./flink-kubernetes-operator-1.6.0-shaded.jar:./flink-kubernetes-operator-autoscaler-1.6.0.jar:/opt/flink/operator-lib/*
am i missing something?
m
This component is compatible with Apache Flink version(s):
1.17.1
1.16.2
1.15.4
1.14.6
1.13.6
It’s not compatible with Flink 1.18 https://flink.apache.org/downloads/
v
I'm confused. I am actually able to deploy this https://github.com/apache/flink-kubernetes-operator/blob/main/examples/autoscaling/autoscaling.yaml locally. it is also running 1.6.0:
Copy code
2023-10-26 12:31:06,002 o.a.f.k.o.FlinkOperator        [INFO ] --------------------------------------------------------------------------------
2023-10-26 12:31:06,025 o.a.f.k.o.FlinkOperator        [INFO ]  Starting Flink Kubernetes Operator (Version: 1.6.0, Flink Version: 1.17.1, Rev:ebb1fed, Date:2023-08-10T14:33:52+02:00)
2023-10-26 12:31:06,026 o.a.f.k.o.FlinkOperator        [INFO ]  OS current user: flink
2023-10-26 12:31:06,026 o.a.f.k.o.FlinkOperator        [INFO ]  JVM: OpenJDK 64-Bit Server VM - Eclipse Adoptium - 11/11.0.20+8
2023-10-26 12:31:06,026 o.a.f.k.o.FlinkOperator        [INFO ]  Arch: aarch64
2023-10-26 12:31:06,033 o.a.f.k.o.FlinkOperator        [INFO ]  Maximum heap size: 7512 MiBytes
2023-10-26 12:31:06,034 o.a.f.k.o.FlinkOperator        [INFO ]  JAVA_HOME: /opt/java/openjdk
2023-10-26 12:31:06,034 o.a.f.k.o.FlinkOperator        [INFO ]  JVM Options:
2023-10-26 12:31:06,034 o.a.f.k.o.FlinkOperator        [INFO ]     -Dlog4j.configurationFile=/opt/flink/conf/log4j-operator.properties
2023-10-26 12:31:06,034 o.a.f.k.o.FlinkOperator        [INFO ]  Program Arguments: (none)
2023-10-26 12:31:06,034 o.a.f.k.o.FlinkOperator        [INFO ]  Classpath: ./flink-kubernetes-standalone-1.6.0.jar:./flink-kubernetes-operator-1.6.0-shaded.jar:./flink-kubernetes-operator-autoscaler-1.6.0.jar:/opt/flink/operator-lib/*
the only difference is the Arch
but when trying to deploy this autoscaling.yaml example in our K8 Dev cluster, which has the operator installed with the same version, the error appears
m
That’s kind of weird
v
Yeah... i am really confused 😕
m
Did you update the CRD?
v
locally:
Copy code
❯ kubectl config use-context docker-desktop
❯ kubectl logs flink-kubernetes-operator-99d9b5698-dmnfk -n default | head -n 20

Starting Operator
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2023-10-26 12:42:08,423 o.a.f.k.o.FlinkOperator        [INFO ] --------------------------------------------------------------------------------
2023-10-26 12:42:08,448 o.a.f.k.o.FlinkOperator        [INFO ]  Starting Flink Kubernetes Operator (Version: 1.5.0, Flink Version: 1.16.1, Rev:be07be7, Date:2023-05-12T16:56:02+02:00)
2023-10-26 12:42:08,448 o.a.f.k.o.FlinkOperator        [INFO ]  OS current user: flink
2023-10-26 12:42:08,448 o.a.f.k.o.FlinkOperator        [INFO ]  JVM: OpenJDK 64-Bit Server VM - Eclipse Adoptium - 11/11.0.19+7
2023-10-26 12:42:08,448 o.a.f.k.o.FlinkOperator        [INFO ]  Arch: aarch64
2023-10-26 12:42:08,451 o.a.f.k.o.FlinkOperator        [INFO ]  Maximum heap size: 7512 MiBytes
2023-10-26 12:42:08,451 o.a.f.k.o.FlinkOperator        [INFO ]  JAVA_HOME: /opt/java/openjdk
2023-10-26 12:42:08,452 o.a.f.k.o.FlinkOperator        [INFO ]  JVM Options:
2023-10-26 12:42:08,452 o.a.f.k.o.FlinkOperator        [INFO ]     -Dlog4j.configurationFile=/opt/flink/conf/log4j-operator.properties
2023-10-26 12:42:08,452 o.a.f.k.o.FlinkOperator        [INFO ]  Program Arguments: (none)
2023-10-26 12:42:08,452 o.a.f.k.o.FlinkOperator        [INFO ]  Classpath: ./flink-kubernetes-standalone-1.5.0-shaded.jar:./flink-kubernetes-operator-1.5.0-shaded.jar:./flink-kubernetes-operator-autoscaler-1.5.0.jar:/opt/flink/operator-lib/*
2023-10-26 12:42:08,452 o.a.f.k.o.FlinkOperator        [INFO ] --------------------------------------------------------------------------------
2023-10-26 12:42:08,643 o.a.f.k.o.c.FlinkConfigManager [INFO ] Setting default configuration to {parallelism.default=1, taskmanager.numberOfTaskSlots=1, kubernetes.operator.reconcile.interval=15 s, kubernetes.operator.metrics.reporter.slf4j.interval=5 MINUTE, kubernetes.operator.observer.progress-check.interval=5 s, kubernetes.operator.health.probe.enabled=true, kubernetes.operator.health.probe.port=8085, kubernetes.operator.metrics.reporter.slf4j.factory.class=org.apache.flink.metrics.slf4j.Slf4jReporterFactory}
2023-10-26 12:42:08,656 o.a.f.k.o.c.FlinkConfigManager [INFO ] Enabled dynamic config updates, checking config changes every PT5M
2023-10-26 12:42:08,658 o.a.f.k.o.m.OperatorMetricUtils [INFO ] Initializing operator metrics using conf: {metrics.reporter.slf4j.factory.class=org.apache.flink.metrics.slf4j.Slf4jReporterFactory, metrics.reporter.slf4j.interval=5 MINUTE, parallelism.default=1, taskmanager.numberOfTaskSlots=1, kubernetes.operator.reconcile.interval=15 s, kubernetes.operator.observer.progress-check.interval=5 s, kubernetes.operator.health.probe.enabled=true, kubernetes.operator.health.probe.port=8085}
2023-10-26 12:42:08,701 o.a.f.r.m.MetricRegistryImpl   [INFO ] Periodically reporting metrics in intervals of 5 min for reporter slf4j of type org.apache.flink.metrics.slf4j.Slf4jReporter.
2023-10-26 12:42:09,062 o.a.f.k.o.FlinkOperator        [INFO ] Configuring operator with 200 reconciliation threads.
2023-10-26 12:42:09,063 o.a.f.k.o.FlinkOperator        [INFO ] Operator leader election is disabled.
in my dev cluster:
Copy code
❯ kubectl config use-context case-dev
❯ kubectl logs flink-kubernetes-operator-9c9bb864b-zqxx6 -n gspkafka | head -n 20

Starting Operator
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2023-10-26 12:23:10,801 o.a.f.k.o.FlinkOperator        [INFO ] --------------------------------------------------------------------------------
2023-10-26 12:23:11,019 o.a.f.k.o.FlinkOperator        [INFO ]  Starting Flink Kubernetes Operator (Version: 1.6.0, Flink Version: 1.17.1, Rev:ebb1fed, Date:2023-08-10T14:33:52+02:00)
2023-10-26 12:23:11,021 o.a.f.k.o.FlinkOperator        [INFO ]  OS current user: flink
2023-10-26 12:23:11,096 o.a.f.k.o.FlinkOperator        [INFO ]  JVM: OpenJDK 64-Bit Server VM - Eclipse Adoptium - 11/11.0.20+8
2023-10-26 12:23:11,096 o.a.f.k.o.FlinkOperator        [INFO ]  Arch: amd64
2023-10-26 12:23:11,103 o.a.f.k.o.FlinkOperator        [INFO ]  Maximum heap size: 247 MiBytes
2023-10-26 12:23:11,107 o.a.f.k.o.FlinkOperator        [INFO ]  JAVA_HOME: /opt/java/openjdk
2023-10-26 12:23:11,108 o.a.f.k.o.FlinkOperator        [INFO ]  JVM Options:
2023-10-26 12:23:11,108 o.a.f.k.o.FlinkOperator        [INFO ]     -Dlog4j.configurationFile=/opt/flink/conf/log4j-operator.properties
2023-10-26 12:23:11,109 o.a.f.k.o.FlinkOperator        [INFO ]  Program Arguments: (none)
2023-10-26 12:23:11,109 o.a.f.k.o.FlinkOperator        [INFO ]  Classpath: ./flink-kubernetes-standalone-1.6.0.jar:./flink-kubernetes-operator-1.6.0-shaded.jar:./flink-kubernetes-operator-autoscaler-1.6.0.jar:/opt/flink/operator-lib/*
2023-10-26 12:23:11,109 o.a.f.k.o.FlinkOperator        [INFO ] --------------------------------------------------------------------------------
2023-10-26 12:23:11,922 o.a.f.k.o.c.FlinkConfigManager [INFO ] Setting default configuration to {job.autoscaler.restart.time=2m, job.autoscaler.enabled="true", job.autoscaler.stabilization.interval=1m, kubernetes.operator.watched.namespaces=gspkafka, kubernetes.operator.health.probe.enabled=true, job.autoscaler.catch-up.duration=5m, pipeline.max-parallelism="16", job.autoscaler.metrics.window=5m, job.autoscaler.target.utilization="0.6", parallelism.default=1, taskmanager.numberOfTaskSlots=1, fs.s3a.aws.credentials.provider=com.amazonaws.auth.WebIdentityTokenCredentialsProvider, kubernetes.operator.flink.client.timeout=61 s, kubernetes.operator.reconcile.interval=15 s, kubernetes.operator.metrics.reporter.slf4j.interval=5 MINUTE, kubernetes.operator.observer.progress-check.interval=5 s, job.autoscaler.target.utilization.boundary="0.2", kubernetes.operator.health.probe.port=8085, kubernetes.operator.metrics.reporter.slf4j.factory.class=org.apache.flink.metrics.slf4j.Slf4jReporterFactory}
2023-10-26 12:23:11,933 o.a.f.k.o.c.FlinkConfigManager [INFO ] Enabled dynamic config updates, checking config changes every PT5M
2023-10-26 12:23:11,998 o.a.f.k.o.m.OperatorMetricUtils [INFO ] Initializing operator metrics using conf: {job.autoscaler.restart.time=2m, job.autoscaler.enabled="true", job.autoscaler.stabilization.interval=1m, metrics.reporter.slf4j.interval=5 MINUTE, kubernetes.operator.watched.namespaces=gspkafka, kubernetes.operator.health.probe.enabled=true, job.autoscaler.catch-up.duration=5m, pipeline.max-parallelism="16", job.autoscaler.metrics.window=5m, job.autoscaler.target.utilization="0.6", metrics.reporter.slf4j.factory.class=org.apache.flink.metrics.slf4j.Slf4jReporterFactory, parallelism.default=1, taskmanager.numberOfTaskSlots=1, fs.s3a.aws.credentials.provider=com.amazonaws.auth.WebIdentityTokenCredentialsProvider, kubernetes.operator.flink.client.timeout=61 s, kubernetes.operator.reconcile.interval=15 s, kubernetes.operator.observer.progress-check.interval=5 s, job.autoscaler.target.utilization.boundary="0.2", kubernetes.operator.health.probe.port=8085}
2023-10-26 12:23:12,133 o.a.f.c.p.DefaultPluginManager [INFO ] Plugin loader with ID not found, creating it: flink-metrics-prometheus
2023-10-26 12:23:12,153 o.a.f.c.p.DefaultPluginManager [INFO ] Plugin loader with ID not found, creating it: flink-metrics-datadog
2023-10-26 12:23:12,154 o.a.f.c.p.DefaultPluginManager [INFO ] Plugin loader with ID not found, creating it: flink-metrics-slf4j
@Martijn Visser sorry which custom resource do i need to look for?
Copy code
```
❯ kubectl config use-context docker-desktop
❯ kubectl apply -f autoscaling.yaml -n default
<http://flinkdeployment.flink.apache.org/autoscaling-example2|flinkdeployment.flink.apache.org/autoscaling-example2> created
dev:
Copy code
❯ kubectl config use-context case-dev
❯ kubectl apply -f autoscaling.yaml -n gspkafka
The FlinkDeployment "autoscaling-example2" is invalid: spec.flinkVersion: Unsupported value: "v1_18": supported values: "v1_13", "v1_14", "v1_15", "v1_16", "v1_17"
```