You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@flink.apache.org by Jeremy Alvis via user <us...@flink.apache.org> on 2024/05/22 20:18:29 UTC
Flink Kubernetes Operator Pod Disruption Budget
Hello,
In order to maintain at least one pod for both the Flink Kubernetes
Operator and JobManagers through Kubernetes processes that use the Eviction
API
<https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/#eviction-api>
such as when draining a node, we have deployed Pod Disruption Budgets
<https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets>
in the appropriate namespaces.
Here is the flink-kubernetes-operator PDB:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: flink-kubernetes-operator
spec:
minAvailable: 1
selector:
matchLabels:
app: flink-kubernetes-operator
Where the Flink Kubernetes Operator has the flink-kubernetes-operator app
label defined:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flink-kubernetes-operator
Here is the jobmanager PDB (deployed alongside each FlinkDeployment):
apiVersion: policy/v1
kind: PodDisruptionBudget
spec:
minAvailable: 1
selector:
matchLabels:
name: jobmanager
Where the FlinkDeployment has the jobmanager name label defined:
apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
spec:
jobManager:
podTemplate:
metadata:
labels:
name: jobmanager
We were wondering if it would make sense for the Flink Kubernetes Operator
to automatically create the PDBs as they are a native Kubernetes resource
like the Ingress that the operator currently creates.
Thanks,
Jeremy
Re: Flink Kubernetes Operator Pod Disruption Budget
Posted by Gyula Fóra <gy...@gmail.com>.
Hey Jeremy!
This sounds like a good / fairly simple extension to add. Since this would
result in a larger extension of the current FlinkDeployment CRD, it would
be good to cover it in a small FLIP.
Cheers,
Gyula
On Wed, May 22, 2024 at 10:20 PM Jeremy Alvis via user <
user@flink.apache.org> wrote:
> Hello,
>
> In order to maintain at least one pod for both the Flink Kubernetes
> Operator and JobManagers through Kubernetes processes that use the Eviction
> API
> <https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/#eviction-api>
> such as when draining a node, we have deployed Pod Disruption Budgets
> <https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets>
> in the appropriate namespaces.
>
> Here is the flink-kubernetes-operator PDB:
>
> apiVersion: policy/v1
> kind: PodDisruptionBudget
> metadata:
> name: flink-kubernetes-operator
> spec:
> minAvailable: 1
> selector:
> matchLabels:
> app: flink-kubernetes-operator
>
> Where the Flink Kubernetes Operator has the flink-kubernetes-operator app
> label defined:
> apiVersion: apps/v1
> kind: Deployment
> metadata:
> labels:
> app: flink-kubernetes-operator
>
>
> Here is the jobmanager PDB (deployed alongside each FlinkDeployment):
>
> apiVersion: policy/v1
> kind: PodDisruptionBudget
> spec:
> minAvailable: 1
> selector:
> matchLabels:
> name: jobmanager
>
> Where the FlinkDeployment has the jobmanager name label defined:
>
> apiVersion: flink.apache.org/v1beta1
> kind: FlinkDeployment
> spec:
> jobManager:
> podTemplate:
> metadata:
> labels:
> name: jobmanager
>
> We were wondering if it would make sense for the Flink Kubernetes Operator
> to automatically create the PDBs as they are a native Kubernetes resource
> like the Ingress that the operator currently creates.
>
> Thanks,
> Jeremy
>