Class KubernetesLeaderElector
- java.lang.Object
-
- org.apache.flink.kubernetes.kubeclient.resources.KubernetesLeaderElector
-
public class KubernetesLeaderElector extends Object
RepresentKubernetesLeaderElectorin 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 theKubernetesLeaderElector.LeaderCallbackHandler.notLeader()is called, theLeaderElector.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 isLEADER_ANNOTATION_KEYand 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 Classes Modifier and Type Class Description static classKubernetesLeaderElector.LeaderCallbackHandlerCallback handler for leader election.
-
Field Summary
Fields Modifier and Type Field Description static StringLEADER_ANNOTATION_KEY
-
Constructor Summary
Constructors Constructor Description KubernetesLeaderElector(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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static booleanhasLeadership(KubernetesConfigMap configMap, String lockIdentity)voidrun()voidstop()
-
-
-
Field Detail
-
LEADER_ANNOTATION_KEY
@VisibleForTesting public static final String LEADER_ANNOTATION_KEY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
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 Detail
-
run
public void run()
-
stop
public void stop()
-
hasLeadership
public static boolean hasLeadership(KubernetesConfigMap configMap, String lockIdentity)
-
-