Production-Grade Container Scheduling and Management
Go to file
Swati Sehgal 2c8fc26b89 node: device-mgr: sample device plugin: control registration process
Update the sample device plugin to enable the e2e node tests (or any
other entity with full access to the node filesystem) to control the
registration process. We add a new environment variable `REGISTER_CONTROL_FILE`.
The value of this variable must be a file which prevents the plugin
to register itself while it's present. Once removed, the plugin will
go on and complete the registration. The plugin will automatically
detect the parent directory on which the file resides and detect
deletions, unblocking the registration process. If the file is specified
but unaccessible, the plugin will fail. If the file is not specified,
the registration process will progress as usual and never pause.
The plugin will need read access to the parent directory.

This feature is useful because it is not possible to control the order
in which the pods are recovered after node reboot/kubelet restart.

In this approach, the testing environment will create a directory and
then a empty file to pause the registration process of the plugin.
Once pointed to that file, the plugin will start and wait for it to
be deleted. Only after the directory has been deleted,
the plugin would proceed to registration.

This feature is used in #114640 where e2e test is implemented to
simulate scenarios where application pods requesting devices come up before
the device plugin pod on node reboot/ kubelet restart.

Co-authored-by: Francesco Romani <fromani@redhat.com>
Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-03-01 10:00:52 +00:00
.github Make root approval non-recursive 2022-10-10 08:26:53 -04:00
api Merge pull request #115928 from pohly/dra-resource-requirements-pvc 2023-02-24 08:39:35 -08:00
build update distroless iptables to v0.2.1 2023-02-20 13:44:09 +01:00
CHANGELOG CHANGELOG: Update directory for v1.27.0-alpha.2 release 2023-02-15 04:19:34 +00:00
cluster Remove unnecessary ETCD_UNSUPPORTED_ARCH for arm64 2023-02-16 21:29:13 -05:00
cmd kubeadm: no need to check if target coredns version is not changed 2023-02-25 21:53:28 +08:00
docs Make root approval non-recursive 2022-10-10 08:26:53 -04:00
hack Merge pull request #115953 from pohly/lint-gomega 2023-02-27 00:56:20 -08:00
LICENSES test: use go-uber/goleak for strict leak checking 2023-02-14 12:11:37 +01:00
logo logo: better alignment of layers 2022-10-19 12:17:25 -07:00
pkg Merge pull request #115907 from qinqon/svc-same-address-different-pod 2023-02-24 19:00:05 -08:00
plugin using const systemNodeRoleName instead of string system:node 2023-02-13 14:22:28 +08:00
staging Merge pull request #115953 from pohly/lint-gomega 2023-02-27 00:56:20 -08:00
test node: device-mgr: sample device plugin: control registration process 2023-03-01 10:00:52 +00:00
third_party Add gimme 2023-02-01 16:34:23 -05:00
vendor [KMS] move util from envelope to kms package 2023-02-27 00:47:46 +00:00
.generated_files
.gitattributes gitattributes: json and yaml files LF line endings 2022-12-22 11:36:07 +00:00
.gitignore Add helper script to install protoc 2023-01-26 18:00:08 -05:00
.go-version [go] Bump images, dependencies and versions to go 1.20.1 2023-02-16 13:38:32 +01:00
.golangci.yaml golangci-lint: enable ginkgolinter 2023-02-22 19:36:05 +01:00
CHANGELOG.md Revert "Add link to to file" 2023-01-05 15:53:04 +08:00
code-of-conduct.md
CONTRIBUTING.md
go.mod update github.com/coredns/corefile-migration v1.0.20 2023-02-25 21:39:44 +08:00
go.sum update github.com/coredns/corefile-migration v1.0.20 2023-02-25 21:39:44 +08:00
LICENSE
Makefile
OWNERS Add sig-architecture-approvers and dep-approvers to root dir 2022-10-10 13:43:04 -04:00
OWNERS_ALIASES Add cici37 as API reviewer 2023-02-02 12:11:09 +00:00
README.md remove gopkg widget 2022-10-18 16:52:38 -07:00
SECURITY_CONTACTS
SUPPORT.md

Kubernetes (K8s)

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.

Community Meetings

The Calendar has the list of all the meetings in Kubernetes community in a single location.

Adopters

The User Case Studies website has real-world use cases of organizations across industries that are deploying/migrating to Kubernetes.

Governance

Kubernetes project is governed by a framework of principles, values, policies and processes to help our community and constituents towards our shared goals.

The Kubernetes Community is the launching point for learning about how we organize ourselves.

The Kubernetes Steering community repo is used by the Kubernetes Steering Committee, which oversees governance of the Kubernetes project.

Roadmap

The Kubernetes Enhancements repo provides information about Kubernetes releases, as well as feature tracking and backlogs.