# CPU-Manager-for-Kubernetes **Repository Path**: mirrors_intel/CPU-Manager-for-Kubernetes ## Basic Information - **Project Name**: CPU-Manager-for-Kubernetes - **Description**: Kubernetes Core Manager for NFV workloads - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DISCONTINUATION OF PROJECT. This project will no longer be maintained by Intel. This project has been identified as having known security escapes. Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. Intel no longer accepts patches to this project. # CPU Manager for Kubernetes [![Build Status](https://travis-ci.org/intel/CPU-Manager-for-Kubernetes.svg?branch=master)](https://travis-ci.org/intel/CPU-Manager-for-Kubernetes) ## Overview This project provides basic core affinity for NFV-style workloads on top of vanilla Kubernetes v1.5+. This project ships a single multi-use command-line program to perform various functions for host configuration, managing groups of CPUs, and constraining workloads to specific CPUs. ## Concepts | Term | Meaning | | :------------- | :------ | | Pool | A named group of CPU lists. A pool can be either _exclusive_ or _shared_. In an _exclusive_ pool, only one task may be allocated to each CPU list simultaneously. | | CPU list | A group of logical CPUs, identified by ID as reported by the operating system. CPU lists conform to the Linux cpuset [CPU list format][cpu-list]. | | Task list | A list of Linux process IDs. | | Isolation | Steps required to set up a process environment so that it runs only on a desired subset of the available CPUs. | | Reconciliation | The process of resolving state between the CMK configuration directory and the Linux [procfs][procfs]. | ## Usage summary ``` Usage: cmk (-h | --help) cmk --version cmk cluster-init (--host-list=|--all-hosts) [--cmk-cmd-list=] [--cmk-img=] [--cmk-img-pol=] [--conf-dir=] [--install-dir=] [--num-exclusive-cores=] [--num-shared-cores=] [--pull-secret=] [--saname=] [--shared-mode=] [--exclusive-mode=] [--namespace=] cmk init [--conf-dir=] [--num-exclusive-cores=] [--num-shared-cores=] [--socket-id=] [--shared-mode=] [--exclusive-mode=] cmk discover [--conf-dir=] cmk describe [--conf-dir=] cmk reconcile [--conf-dir=] [--publish] [--interval=] cmk isolate [--conf-dir=] [--socket-id=] --pool= [-- ...][--no-affinity] cmk install [--install-dir=] cmk node-report [--conf-dir=] [--publish] [--interval=] cmk uninstall [--install-dir=] [--conf-dir=] [--namespace=] cmk webhook [--conf-file=] Options: -h --help Show this screen. --version Show version. --host-list= Comma seperated list of Kubernetes nodes to prepare for CMK software. --all-hosts Prepare all Kubernetes nodes for the CMK software. --cmk-cmd-list= Comma seperated list of CMK sub-commands to run on each host [default: init,reconcile,install,discover,nodereport]. --cmk-img= CMK Docker image [default: cmk:v1.5.2]. --cmk-img-pol= Image pull policy for the CMK Docker image [default: IfNotPresent]. --conf-dir= CMK configuration directory [default: /etc/cmk]. --install-dir= CMK install directory [default: /opt/bin]. --interval= Number of seconds to wait between rerunning. If set to 0, will only run once. [default: 0] --num-exclusive-cores= Number of cores in exclusive pool. [default: 4]. --num-shared-cores= Number of cores in shared pool. [default: 1]. --pool= Pool name: either infra, shared or exclusive. --shared-mode= Shared pool core allocation mode. Possible modes: packed and spread [default: packed]. --exclusive-mode= Exclusive pool core allocation mode. Possible modes: packed and spread [default: packed]. --publish Whether to publish reports to the Kubernetes API server. --pull-secret= Name of secret used for pulling Docker images from restricted Docker registry. --saname= ServiceAccount name to pass [default: cmk-serviceaccount]. --socket-id= ID of socket where allocated core should come from. If it's set to -1 then child command will be assigned to any socket [default: -1]. --no-affinity Do not set cpu affinity before forking the child command. In this mode the user program is responsible for reading the `CMK_CPUS_ASSIGNED` environment variable and moving a subset of its own processes and/or tasks to the assigned CPUs. --namespace= Set the namespace to deploy pods to during the cluster-init deployment process. [default: default]. ``` _For detailed usage information about each subcommand, see [Using the cmk command-line tool][doc-cli]._ ## Further Reading - [Architecture][arch] - [Building cmk][doc-build] - [Operator manual][doc-operator] - [User manual][doc-user] - [Using the cmk command-line tool][doc-cli] - [The cmk configuration directory][doc-config] - [Releasing][release] [arch]: docs/architecture.md [cpu-list]: http://man7.org/linux/man-pages/man7/cpuset.7.html#FORMATS [doc-build]: docs/build.md [doc-cli]: docs/cli.md [doc-config]: docs/config.md [doc-operator]: docs/operator.md [doc-user]: docs/user.md [procfs]: http://man7.org/linux/man-pages/man5/proc.5.html [release]: RELEASE.md