flink icon indicating copy to clipboard operation
flink copied to clipboard

[FLINK-28825][k8s] Add K8S pod scheduler into Kubernetes options

Open bzhaoopenstack opened this issue 2 years ago • 2 comments

We introduce 3 options for supporting specify the K8S pod scheduler name.

What is the purpose of the change

(For example: This pull request makes task deployment go through the blob server, rather than through RPC. That way we avoid re-transferring them on each deployment (during recovery).)

This change is introduced by FLIP-250 for supporting specify pod scheduler name by users. This PR introduces 3 options for it.

Brief change log

New options are: kubernetes.jobmanager.scheduler-name kubernetes.taskmanager.scheduler-name kubernetes.scheduler-name

The first two of them can be specified by users to control the k8s pod scheduler they used for jobmanager and taskmanager. The last one is the fallback one, the first two options will overwrite it.

Verifying this change

Kubernetes deployment support 3 new options now. Can check the backend pods scheduler name whether is the same with the specified one.

Does this pull request potentially affect one of the following parts:

  • Dependencies (does it add or upgrade a dependency): (no)
  • The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
  • The serializers: (no)
  • The runtime per-record code paths (performance sensitive): (no)
  • Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (yes)
  • The S3 file system connector: (no)

Documentation

  • Does this pull request introduce a new feature? (yes)
  • If yes, how is the feature documented? (not applicable)

bzhaoopenstack avatar Aug 05 '22 08:08 bzhaoopenstack

CI report:

  • 1d88556e9b868f6ee7c85033bee7491dbce92d66 Azure: SUCCESS
Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

flinkbot avatar Aug 05 '22 09:08 flinkbot

The scheduler can be setting with schedulerName in podTemplate simply,I think there is no need to add options to kubernetes config. image

Grypse avatar Aug 09 '22 02:08 Grypse

podTemplate simply,I think there is no need to add options to kubernetes config.

Hi, thanks for review. And apologize for my late reply. Yeah, that would be another easy way to set scheduler name via template. But we would also provide a way for users when they submit job via CLI, also for supporting plugin Step Decorators(K8S Custom Schedulers), there would be many cases that users setting the schedulers more frequently or upper-level controller management platform. So I think that would be valuable for introducing setting the said scheduler field via Configuration option. ;-)

bzhaoopenstack avatar Aug 20 '22 13:08 bzhaoopenstack

I have a question. which mode the code worked for ? flink on k8s session 、 flink on k8s per-job、 flink on k8s application or flink on k8s native? thank you

gj199575 avatar Jan 17 '23 02:01 gj199575

Hi, @bzhaoopenstack , what is the status of this PR? Are you still working on it?

Thanks.

legendtkl avatar Feb 23 '23 02:02 legendtkl

I will handle this PR as @bzhaoopenstack successor 。 And there are two PR(https://github.com/apache/flink/pull/20498 https://github.com/apache/flink/pull/20636) is replenish of this PR。

And I also commit a PR as replenish 。 https://github.com/bzhaoopenstack/flink/pull/5

I wish more friends can give some advices。 Thanks.

I wish we can merge these PR, which can help flink work on k8s better。

gj199575 avatar Feb 23 '23 03:02 gj199575