1 Introduction

Oracle Cloud Native Environment is a fully integrated suite for the development and management of cloud native applications.

Oracle Cloud Native Environment is a curated set of open source projects that are based on open standards, specifications, and APIs defined by the Open Container Initiative (OCI) and Cloud Native Computing Foundation (CNCF) that can be easily deployed, have been tested for interoperability and for which enterprise-grade support is offered. Oracle Cloud Native Environment delivers a simplified framework for installations, updates, upgrades, and configuration of key features for orchestrating microservices.

Oracle Cloud Native Environment uses Kubernetes to deploy and manage containers. When you create an environment, in addition to Kubernetes nodes, the Oracle Cloud Native Environment Platform API Server must be installed on a server, and is needed to perform a deployment and manage modules. The term module refers to a packaged software component that can be deployed to provide both core and optional cluster-wide functionality. The Kubernetes module for Oracle Cloud Native Environment is the core module, and automatically installs, and configures Kubernetes, CRI-O, runC, and Kata Containers on the Kubernetes nodes and brings up a Kubernetes cluster.

The Kubernetes nodes run an Oracle Cloud Native Environment Platform Agent. The Platform Agent communicates with the Platform API Server to manage the deployment of modules.

The Oracle Cloud Native Environment Platform CLI performs the validation and deployment of modules to the nodes, enabling easy deployment of modules such as the Kubernetes module. The required software for modules is configured by the Platform CLI, such as Kubernetes, CRI-O, runC, Kata Containers, CoreDNS, Flannel, and Calico. The Platform CLI also reports details about installed modules.

Optional modules can be installed into a Kubernetes cluster:

  • The Calico module for Oracle Cloud Native Environment, which is used to set up Calico as the Kubernetes CNI for the pod data plane.

  • The Multus module for Oracle Cloud Native Environment which is used to set up Multus, which is used to create a network bridge Calico or Flannel.

  • The Oracle Cloud Infrastructure Cloud Controller Manager module for Oracle Cloud Native Environment, which is used to set up persistent storage and load balancers to provide external IP addresses for Kubernetes applications in a Kubernetes cluster running on Oracle Cloud Infrastructure instances.

  • The MetalLB module for Oracle Cloud Native Environment, which is used to provide external IP addresses for Kubernetes applications running on bare metal hosts. MetalLB lets you use Kubernetes LoadBalancer services, which traditionally use a cloud provider network load balancer, in a bare metal environment.
  • The Rook module for Oracle Cloud Native Environment, which is used to set up Ceph persistent storage for Kubernetes applications in a Kubernetes cluster.

  • The KubeVirt module for Oracle Cloud Native Environment, which is used to set up KubeVirt to enable you to create virtual machines that are run and managed in a Kubernetes cluster.

  • The Operator Lifecycle Manager module for Oracle Cloud Native Environment, which is used to deploy and manage Kubernetes operators in a Kubernetes cluster.

  • The NGINX Ingress Controller module for Oracle Cloud Native Environment is used to install the NGINX Ingress Controller in a Kubernetes cluster.

  • The Istio module for Oracle Cloud Native Environment, which is used to deploy a service mesh on top of the Kubernetes cluster. The Istio module also installs the Prometheus module and the Grafana module.