Go to file
Francesco Giudici 7516a8c51b kata-monitor: rework the sandbox cache sync with the container manager
Kata-monitor detects started and terminated kata pods by monitoring the
vc/sbs fs (this makes sense since we will have to access that path to
access the sockets there to get the metrics from the shim).
While kata-monitor updates its sandbox cache based on the sbs fs events,
it will schedule also a sync with the container manager via the CRI in
order to sync the list of sandboxes there.
The container manager will be the ultimate source of truth, so we will
stick with the response from the container manager, removing the
sandboxes not reported from the container manager.

May happen anyway that when we check the container manager, the new kata
pod is not reported yet, and we will remove it from the kata-monitor pod
cache. If we don't get any new kata pod added or removed, we will not
check with the container manager again, missing reporting metrics about
that kata pod.

Let's stick with the sbs fs as the source of truth: we will update the
cache just following what happens on the sbs fs.
At this point we may have also decided to drop the container manager
connection... better instead to keep it in order to get the kube pod
metadata from it, i.e., the kube UID, Name and Namespace associated with
the sandbox.
Every time we get a new sandbox from the sbs fs we will try to retrieve the
pod metadata associated with it.

Right now we just attach the container manager sandbox id as a label to
the exposed metrics, making hard to link the metrics to the running pod
in the kubernetes cluster.
With kubernetes pod metadata we will be able to add them as labels to map
explicitly the metrics to the kubernetes workloads.

Fixes: #3550

Signed-off-by: Francesco Giudici <fgiudici@redhat.com>
2022-01-26 13:48:45 +01:00
.github/workflows workflows: Use base instead of head ref for kata-deploy-test 2022-01-20 11:04:14 +01:00
ci ci: Pass function arguments in static-checks.sh 2022-01-24 12:05:10 +01:00
docs docs: Remove docker run, sysctl and docker daemon limitations 2022-01-24 18:11:54 +00:00
snap docs: Move arch doc to separate directory 2021-12-16 12:26:17 +00:00
src kata-monitor: rework the sandbox cache sync with the container manager 2022-01-26 13:48:45 +01:00
tools Merge pull request #3509 from ManaSugi/remove-libseccomp-from-dockerfile 2022-01-21 06:50:53 +01:00
utils scripts: Use shebang /usr/bin/env bash 2022-01-13 22:53:28 +01:00
.gitignore gitignore: Ignore *~ editor backup files 2021-02-19 09:54:53 +11:00
CODE_OF_CONDUCT.md docs: Add contributing and code of conduct docs 2018-02-06 10:41:09 +00:00
CODEOWNERS docs: fix static check errors 2020-09-28 11:01:03 +08:00
CONTRIBUTING.md docs: Add contributing and code of conduct docs 2018-02-06 10:41:09 +00:00
Glossary.md docs: Redirect glossary to the wiki 2022-01-20 14:01:24 +00:00
LICENSE Initial commit 2017-12-06 23:01:13 -06:00
Makefile src: reorg source directories 2021-12-14 10:30:08 +08:00
README.md src: reorg source directories 2021-12-14 10:30:08 +08:00
utils.mk src: reorg source directories 2021-12-14 10:30:08 +08:00
VERSION release: Kata Containers 2.4.0-alpha1 2022-01-06 08:37:28 +02:00
versions.yaml versions: Upgrade to Cloud Hypervisor v21.0 2022-01-20 17:43:14 -08:00

Kata Containers

Welcome to Kata Containers!

This repository is the home of the Kata Containers code for the 2.0 and newer releases.

If you want to learn about Kata Containers, visit the main Kata Containers website.

Introduction

Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs.

Getting started

See the installation documentation.

Documentation

See the official documentation (including installation guides, the developer guide, design documents and more).

Community

To learn more about the project, its community and governance, see the community repository. This is the first place to go if you wish to contribute to the project.

Getting help

See the community section for ways to contact us.

Raising issues

Please raise an issue in this repository.

Note: If you are reporting a security issue, please follow the vulnerability reporting process

Developers

Components

Main components

The table below lists the core parts of the project:

Component Type Description
runtime core Main component run by a container manager and providing a containerd shimv2 runtime implementation.
agent core Management process running inside the virtual machine / POD that sets up the container environment.
documentation documentation Documentation common to all components (such as design and install documentation).
tests tests Excludes unit tests which live with the main code.

Additional components

The table below lists the remaining parts of the project:

Component Type Description
packaging infrastructure Scripts and metadata for producing packaged binaries
(components, hypervisors, kernel and rootfs).
kernel kernel Linux kernel used by the hypervisor to boot the guest image. Patches are stored here.
osbuilder infrastructure Tool to create "mini O/S" rootfs and initrd images and kernel for the hypervisor.
agent-ctl utility Tool that provides low-level access for testing the agent.
trace-forwarder utility Agent tracing helper.
ci CI Continuous Integration configuration files and scripts.
katacontainers.io Source for the katacontainers.io site.

Packaging and releases

Kata Containers is now available natively for most distributions. However, packaging scripts and metadata are still used to generate snap and GitHub releases. See the components section for further details.

Glossary of Terms