Code Monkey home page Code Monkey logo

sandboxed-containers-operator's Introduction

Introduction to sandboxed containers

OpenShift sandboxed containers, based on the Kata Containers open source project, provides an Open Container Initiative (OCI) compliant container runtime using lightweight virtual machines, running your workloads in their own isolated kernel and therefore contributing an additional layer of isolation back to OpenShift’s Defense-in-Depth strategy.

Features & benefits of sandboxed containers

  • Isolated Developer Environments & Privileges Scoping As a developer working on debugging an application using state-of-the-art tooling you might need elevated privileges such as CAP_ADMIN or CAP_BPF. With OpenShift sandboxed containers, any impact will be limited to a separate dedicated kernel.

  • Legacy Containerized Workload Isolation You are mid-way in converting a containerized monolith into cloud-native microservices. However, the monolith still runs on your cluster unpatched and unmaintained. OpenShift sandboxed containers helps isolate it in its own kernel to reduce risk.

  • Safe Multi-tenancy & Resource Sharing (CI/CD Jobs, CNFs, ..) If you are providing a service to multiple tenants, it could mean that the service workloads are sharing the same resources (e.g., worker node). By deploying in a dedicated kernel, the impact of these workloads have on one another is greatly reduced.

  • Additional Isolation with Native Kubernetes User Experience OpenShift sandboxed containers is used as a compliant OCI runtime. Therefore, many operational patterns used with normal containers are still preserved including but not limited to image scanning, GitOps, Imagestreams, and so on.

Please refer to this blog for a detailed overview of sandboxed containers use cases and other related details.

OpenShift sandboxed containers Operator

The operator manages the lifecycle (install/configure/update) of sandboxed containers runtime (Kata containers) on OpenShift clusters.

Operator Architecture

The following diagram shows how the operator components are connected to the OpenShift overall architecture:

High Level Overview

Here is a brief summary of the components:

  • OpenShift clusters consist of controller and worker nodes organized as machine config pools.
  • The Machine Config Operator (MCO) manages the operating system and keeps the cluster up to date and configured.
  • The control-plane nodes run all the services that are required to control the cluster such as the API server, etcd, controller-manager, and the scheduler.
  • The OpenShift sandboxed containers operator runs on a control plane node.
  • The cluster worker nodes run all the end-user workloads.
  • The container engine CRI-O uses either the default container runtime runc or, in sandboxed containers case, the Kata containers runtime.

KataConfig Custom Resource Definition

The operator owns and control the KataConfig Custom Resource Definition (CRD). Please refer to the code to find details of the KataConfig CRD.

Getting Started

Please refer to the OpenShift release specific documentation for getting started with sandboxed containers.

  • For OpenShift latest documentation please follow this doc

Further note that starting with OpenShift 4.9, the branch naming is tied to the operator version and not the OpenShift version. For example release-1.1 corresponds to the Operator release verson 1.1.x.

Operator Development

Please take a look at the following doc. Contributions are most welcome!!

Demos

You can find various demos in the following youtube channel.

Further Reading

sandboxed-containers-operator's People

Contributors

jensfr avatar bpradipt avatar harche avatar fidencio avatar littlejawa avatar gkurz avatar pmores avatar cpmeadors avatar fgiudici avatar andreabolognani avatar dobbymoodge avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.