The software described in this documentation is either no longer supported or is in extended support.
Oracle recommends that you upgrade to a current supported release.

Chapter 4 Environments and Modules

This chapter introduces the concepts of environments and modules in Oracle Cloud Native Environment.

4.1 Environments

An environment is a namespace that encapsulates the software installed and managed by Oracle Cloud Native Environment. Each environment contains at least the Kubernetes module.

The Platform CLI allows you to create and manage multiple deployments. Each deployment contains an environment, and each environment may potentially contain multiple modules. This allows you to create multiple Kubernetes clusters using the same Oracle Cloud Native Environment installation. Each Kubernetes cluster must have dedicated nodes, that is, a server cannot be used in two clusters, or environments.


4.2 Modules

A module is a curated unit of software that can be installed and managed by Oracle Cloud Native Environment. A module fulfills at least one specific role in a deployment. Modules that fulfill the same roles may be swapped out in a managed way. Modules may encapsulate other modules.

The available modules are:

  • Kubernetes

  • Istio

  • Helm

  • Prometheus

  • Operator Lifecycle Manager

4.2.1 Kubernetes Module

The core module in Oracle Cloud Native Environment is the Kubernetes module. The Kubernetes module is used to deploy a Kubernetes cluster in an environment.

Figure 4.2 Kubernetes module

The Kubernetes module installs and configures Kubernetes on the nodes and sets up the cluster.

Figure 4.3 Kubernetes cluster

The Kubernetes module includes sub-components, such as:

  • Flannel: The default overlay network for a Kubernetes cluster.

  • CoreDNS: The DNS server for a Kubernetes cluster.

  • CRI-O: Manages the container runtime for a Kubernetes cluster.

  • runC: The default lightweight, portable container runtime for a Kubernetes cluster.

  • Kata Containers: An optional lightweight virtual machine runtime for a Kubernetes cluster.

For more information about installing and using the Kubernetes module, see Container Orchestration.

4.2.2 Istio Module

Istio is a fully featured service mesh for microservices in Kubernetes clusters. Istio can handle most aspects of microservice management, for example, identity, authentication, transport security, metric scraping, and so on.

The Istio module for Oracle Cloud Native Environment installs Istio into a Kubernetes module (cluster), and uses a Helm module to perform the deployment.

The Istio module installs a number of components that are used exclusively by Istio:

  • Egress gateway

  • Ingress gateway

  • Istiod

  • Grafana

  • Prometheus

When you deploy the Istio module, an embedded instance of Prometheus is also deployed. Prometheus is used to monitor and gather metrics about the Kubernetes cluster. Another embedded component that is deployed is Grafana. Grafana is a monitoring and visualization tool for time-series data stored in a database which in this case is Prometheus. Grafana enables you to visually query and monitor the network traffic and services in your Kubernetes cluster. Grafana includes browser-based dashboards to visualize the cluster metrics gathered from Prometheus.


For more information about installing and using the Istio module, see Service Mesh.

4.2.3 Helm Module

Helm is a package manager for Kubernetes. Helm simplifies the task of deploying and managing software inside Kubernetes clusters. Helm uses charts to manage the packages that it can deploy. A chart is a collection of files that describe a related set of Kubernetes resources.

The Helm module for Oracle Cloud Native Environment installs Helm into a Kubernetes module (cluster). The Helm module is used by the Platform API Server to install additional modules such as the Istio module.

Note

In this release, the Helm module should only be used in the context of an Istio module and/or Operator Lifecycle Manager module deployment.

4.2.4 Prometheus Module

Prometheus is a systems monitoring and alerting toolkit that collects and stores metrics and other time series data from various sources and presents it in an easily retrievable manner.

The Prometheus module for Oracle Cloud Native Environment is pre-configured with rich monitoring of important systems inside a Kubernetes cluster.

The Prometheus module is deployed by the Helm module into a Kubernetes cluster. The Prometheus module is required by the Istio module and is used to create an embedded instance of Prometheus for use by Istio.

Note

In this release, the Prometheus module should only be used in the context of an Istio module deployment.

4.2.5 Operator Lifecycle Manager Module

The Operator Lifecycle Manager module manages the installation and lifecycle management of Kubernetes operators in a Kubernetes cluster.

A Kubernetes operator is a design pattern that allows you to write code to automate tasks and extend Kubernetes. It is a set of concepts you can use to define a service for Kubernetes and helps to automate administrative services in Kubernetes.

The Operator Lifecycle Manager module is deployed by the Helm module into a Kubernetes cluster.