Ability to Define Specific CPUs/Cores for ETCD container

Problem

In production environments it is required to have the ability to define the specific CPUs or cores for the ETCD container, so as to ensure it does not impact other applications using guaranteed CPUs as defined via kubelet’s cpu manager policy.

Environment

  • Platform9 Edge Cloud - v5.3.
  • Kuberneted version-1.20.

Cause

Since ETCD runs as Docker container and is not managed by Kubelet, it doesn't inherit the kubelet cpu manager policy and by default has usage of all available cpus in the system.

Workaround

The below change will not persist across cluster upgrade

Please find the steps below to set specific CPUs for ETCD container. Note that the same will have to be done on each master node part of the cluster, one node at a time to ensure quorum is maintained

  1. Stop the Stack and set required permission:
Master node
Copy
  1. Edit the file /opt/pf9/pf9-kube/master_utils.sh to add cpuset-cpus argument:
Master node
Copy
  1. Start the stack
Master node
Copy
  1. Validation post stack startup:
Javascript
Copy

Resolution

To persist the changes across upgrades the internal configurations will be reconfigured in the SMCP-5.11 release.

Additional Information

The ETA for the release SMCP-5.11 is not confirmed, you can track the progress by opening a support request mentioning the jira id- AIR-659.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard