radondb-mysql-kubernetes icon indicating copy to clipboard operation
radondb-mysql-kubernetes copied to clipboard

[feature] Example configuration for providing QoS Guaranteed.

Open runkecheng opened this issue 3 years ago • 0 comments
trafficstars

Is your feature request related to a problem? Please describe.

When Kubernetes creates a Pod it assigns one of these QoS classes to the Pod:

  • Guaranteed
  • Burstable (deploy using the default sample yaml)
  • BestEffort

When Node resources are insufficient, BestEffort POD will be killed first, followed by Burstable, and finally Guaranteed, so, using higher level QoS to be better for databases.

ref: https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/

Describe the solution you'd like

QoS cannot be explicitly configured, it can only match the corresponding QoS rules by configuring resource limits and requests.

For a Pod to be given a QoS class of Guaranteed:

  • Every Container in the Pod must have a memory limit and a memory request.
  • For every Container in the Pod, the memory limit must equal the memory request.
  • Every Container in the Pod must have a CPU limit and a CPU request.
  • For every Container in the Pod, the CPU limit must equal the CPU request.

We can provide an example configuration for Guaranteed.

Describe alternatives you've considered

Additional context

runkecheng avatar Feb 25 '22 06:02 runkecheng