Class KubernetesLeaderElector
java.lang.Object
org.apache.flink.kubernetes.kubeclient.resources.KubernetesLeaderElector
Represent
KubernetesLeaderElector in kubernetes. LeaderElector.run() is a
blocking call. It should be run in the IO executor, not the main thread. The lifecycle is bound
to single leader election. Once the leadership is revoked, as well as the KubernetesLeaderElector.LeaderCallbackHandler.notLeader() is called, the LeaderElector.run() will finish. To
start another round of election, we need to trigger again.
LeaderElector.run() is responsible for creating the leader ConfigMap and continuously
update the annotation. The annotation key is LEADER_ANNOTATION_KEY and the value is in
the following json format. metadata: annotations: control-plane.alpha.kubernetes.io/leader:
'{"holderIdentity":"623e39fb-70c3-44f1-811f-561ec4a28d75","leaseDuration":15.000000000,"acquireTime":"2020-10-20T04:06:31.431000Z","renewTime":"2020-10-22T08:51:36.843000Z","leaderTransitions":37981}'
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classCallback handler for leader election. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionKubernetesLeaderElector(io.fabric8.kubernetes.client.NamespacedKubernetesClient kubernetesClient, KubernetesLeaderElectionConfiguration leaderConfig, KubernetesLeaderElector.LeaderCallbackHandler leaderCallbackHandler) KubernetesLeaderElector(io.fabric8.kubernetes.client.NamespacedKubernetesClient kubernetesClient, KubernetesLeaderElectionConfiguration leaderConfig, KubernetesLeaderElector.LeaderCallbackHandler leaderCallbackHandler, ExecutorService executorService) -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanhasLeadership(KubernetesConfigMap configMap, String lockIdentity) voidrun()voidstop()
-
Field Details
-
LEADER_ANNOTATION_KEY
- See Also:
-
-
Constructor Details
-
KubernetesLeaderElector
public KubernetesLeaderElector(io.fabric8.kubernetes.client.NamespacedKubernetesClient kubernetesClient, KubernetesLeaderElectionConfiguration leaderConfig, KubernetesLeaderElector.LeaderCallbackHandler leaderCallbackHandler) -
KubernetesLeaderElector
@VisibleForTesting public KubernetesLeaderElector(io.fabric8.kubernetes.client.NamespacedKubernetesClient kubernetesClient, KubernetesLeaderElectionConfiguration leaderConfig, KubernetesLeaderElector.LeaderCallbackHandler leaderCallbackHandler, ExecutorService executorService)
-
-
Method Details
-
run
public void run() -
stop
public void stop() -
hasLeadership
-