Production-Grade Container Scheduling and Management
Go to file
Kevin Klues 155562dd2e Fix bug in TopologyManager with merging hints when NUM_NUMA > 2
Before this fix, hint permutations such as:

	permutation: [{11 true} {0101 true}]

Could result in merged hints of:

	mergedHint: {01 true}

This was possible because both hints in the permutation container a "preferred"
allocation (i.e. the full set of NUMA nodes set in the affinity bitmask are
*required* to satisfy the allocation). With this in place, the simplified logic
we had simply kept the merged hint as preferred as well.

However, what we really want is to ensure that the merged hint is only
preferred if *true* alignment of all resources is possible (i.e. if all hints
in the permutation are preferred AND their affinities are exactly equal).

The only exception to this is if *no* topology information is provided by a
given hint provider. In this case, we assume alignment doesn't matter and only
consider the resources that actually have hints provided for them.

This changes the semantics of permutations of the form:

	permutation: [{111 true} {011 true}]

To now result in the merged hint of:

	mergedHint: {011 false}

Instead of:

	mergedHint: {011 true}

This is arguably how it should always have been though (because a hint should
not be preferred if true alignment isn't possible), and two tests have had to
change to accomodate these new semantics.

This commit changes the merge function to implement the updated logic, adds a
test to verify it is functioning correctly, and updates the two tests mentioned
above to adjust to the new semantics.

Signed-off-by: Kevin Klues <kklues@nvidia.com>
2022-02-10 22:07:51 +00:00
.github expand the alias from contribex to the full name 2022-01-19 09:54:55 -05:00
api Merge pull request #107691 from SubhasmitaSw/issue_31393 2022-02-09 18:33:46 -08:00
build make: test-e2e-node: default to containerd 2022-02-01 16:36:06 +01:00
CHANGELOG Merge pull request #107348 from smarterclayton/warn_about_admission 2022-02-04 22:54:50 -08:00
cluster Merge pull request #107481 from shu-mutou/deprecate-dashboard-addon 2022-02-10 05:35:48 -08:00
cmd kubeadm: fix the bug that 'kubeadm init --dry-run --upload-certs' command failed with 'secret not found' error 2022-02-09 12:58:02 +08:00
docs OWNERS cleanup - Jan 2021 Week 1 2022-01-10 08:14:29 -05:00
hack Merge pull request #107481 from shu-mutou/deprecate-dashboard-addon 2022-02-10 05:35:48 -08:00
LICENSES feat: add missing SOCKS5 features 2022-01-21 11:49:41 +01:00
logo
pkg Fix bug in TopologyManager with merging hints when NUM_NUMA > 2 2022-02-10 22:07:51 +00:00
plugin Merge pull request #107880 from liggitt/kubectl-auth-token 2022-02-09 14:10:01 -08:00
staging cacher: Minor cleanup and refactor of code and tests 2022-02-10 16:57:39 +05:30
test Merge pull request #107481 from shu-mutou/deprecate-dashboard-addon 2022-02-10 05:35:48 -08:00
third_party OWNERS cleanup - Jan 2021 Week 1 2022-01-10 08:14:29 -05:00
vendor feat: add missing SOCKS5 features 2022-01-21 11:49:41 +01:00
.generated_files
.gitattributes
.gitignore
.golangci.yaml fix golangci-lint config file using exclude-rules 2021-11-17 13:58:53 +01:00
CHANGELOG.md
code-of-conduct.md
CONTRIBUTING.md
go.mod feat: add missing SOCKS5 features 2022-01-21 11:49:41 +01:00
go.sum feat: add missing SOCKS5 features 2022-01-21 11:49:41 +01:00
LICENSE
Makefile
Makefile.generated_files
OWNERS for ./OWNERS, ensure approvers are in reviewers and emeritus approvers are not in reviewers 2022-02-03 22:43:04 -08:00
OWNERS_ALIASES Add dgrisonnet to sig-instrumentation approvers 2022-01-26 17:32:38 +01:00
README.md
SECURITY_CONTACTS
SUPPORT.md

Kubernetes (K8s)

GoPkg Widget CII Best Practices


Kubernetes, also known as K8s, is an open source system for managing containerized applications across multiple hosts. It provides basic mechanisms for deployment, maintenance, and scaling of applications.

Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.

Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF). If your company wants to help shape the evolution of technologies that are container-packaged, dynamically scheduled, and microservices-oriented, consider joining the CNCF. For details about who's involved and how Kubernetes plays a role, read the CNCF announcement.


To start using K8s

See our documentation on kubernetes.io.

Try our interactive tutorial.

Take a free course on Scalable Microservices with Kubernetes.

To use Kubernetes code as a library in other applications, see the list of published components. Use of the k8s.io/kubernetes module or k8s.io/kubernetes/... packages as libraries is not supported.

To start developing K8s

The community repository hosts all information about building Kubernetes from source, how to contribute code and documentation, who to contact about what, etc.

If you want to build Kubernetes right away there are two options:

You have a working Go environment.
mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make
You have a working Docker environment.
git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make quick-release

For the full story, head over to the developer's documentation.

Support

If you need support, start with the troubleshooting guide, and work your way through the process that we've outlined.

That said, if you have questions, reach out to us one way or another.