I am deploying some Flink jobs which require access to some services under a service mesh implemented via Linkerd. From time to time, I'm running into this error:
``` java.lang.NoClassDefFoundError: Could not initialize class foo.bar.Job ``` It's weird because I have some jobs running well but others for which I am getting this error. I can confirm that the jar file contains the class that cannot be found apparently, so it's not a problem with the jar itself, but seems to be related with linkerd. In particular, I'm using the following pod annotations for both the jobmanager and the taskmanager pods (taken from my Helm Chart values file): ``` podAnnotations: linkerd.io/inject: enabled config.linkerd.io/skip-outbound-ports: 6123,6124 config.linkerd.io/proxy-await: enabled ``` For what it's worth, I'm using the [Ververica Platform][1] (Community Edition) for deploying my jobs to Kubernetes (although I don't think that the main issue is specific to the VVP): ``` {{- define "vvp.deployment" }} kind: Deployment apiVersion: v1 metadata: name: my-job spec: template: spec: artifact: kind: jar flinkImageRegistry: {{ .Values.flink.imageRegistry }} flinkVersion: "1.15.1" flinkImageTag: 1.15.1-stream1-scala_2.12-java11-linkerd entryClass: foo.bar.Job kubernetes: jobManagerPodTemplate: metadata: {{- with .Values.flink.podAnnotations }} annotations: {{- toYaml . | nindent 14 }} {{- end }} spec: containers: - name: flink-jobmanager command: - linkerd-entrypoint.sh taskManagerPodTemplate: metadata: {{- with .Values.flink.podAnnotations }} annotations: {{- toYaml . | nindent 14 }} {{- end }} {{- end }} ``` where the contents of `linkered-entrypoint.sh` are: ``` #!/bin/bash set -e exec linkerd-await --shutdown -- "$@" ``` For extra context, the VVP and the flink jobs are deployed into different namespaces. Also, for the VVP pods, I'm not using any linkerd annotations whatsoever. To be clear, if I remove the annotations / everything releated to Linkerd, the job deployment works as expected. Has anyone encountered similar problems? Am I missing something? Should I also use the ` linkerd.io/inject: enabled` annotation for the VVP pods? The closest troubleshooting resource/guide that I've found so far is [this one][2], which targets Istio instead of Linkerd. [1]: https://www.ververica.com/ [2]: https://ververica.zendesk.com/hc/en-us/articles/7233687970460-How-to-integrate-Istio-with-Ververica-Platform --- PS: Also posted in SO: - https://stackoverflow.com/questions/76033732/flink-kubernetes-and-linkerd