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.

Figure 4.1 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 module

  • Istio module

  • Helm module

  • Prometheus module

  • Grafana module

  • Operator Lifecycle Manager module

  • Oracle Cloud Infrastructure Container Storage Interface module

  • Gluster Container Storage Interface module

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

  • Prometheus (installed by the Prometheus module)

  • Grafana (installed by the Grafana module)

When you deploy the Istio module, Prometheus is also deployed as a supporting module. Prometheus is used to monitor and gather metrics about the Kubernetes cluster. Another supporting module that is deployed with Istio 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.

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 Grafana Module

Grafana is a monitoring and visualization tool that allows you to query the time-series data in Prometheus and create dashboards to visualize that data. You can visually monitor your Kubernetes cluster, the services that are running, and network traffic.

The Grafana module for Oracle Cloud Native Environment is pre-configured to connect to and read data from Prometheus.

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

Note

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

4.2.6 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.

4.2.7 Oracle Cloud Infrastructure Container Storage Interface Module

The Oracle Cloud Infrastructure Container Storage Interface module is used to set up dynamically provisioned persistent storage using Oracle Cloud Infrastructure. Oracle Cloud Infrastructure block volumes provide reliable, high-performance block storage designed to work with a range of Oracle Cloud Infrastructure virtual machines and bare metal instances. With built-in redundancy, block volumes are persistent and durable beyond the lifespan of a virtual machine and can scale to 1 PB per compute instance. The Oracle Cloud Infrastructure Container Storage Interface module creates a Kubernetes StorageClass provisioner to access Oracle Cloud Infrastructure storage.

The Oracle Cloud Infrastructure Container Storage Interface module is deployed by the Helm module into a Kubernetes cluster.

4.2.8 Gluster Container Storage Interface Module

The Gluster Container Storage Interface module is used to set up dynamically provisioned persistent storage using Gluster Storage for Oracle Linux. Gluster is a scalable, distributed file system that aggregates disk storage resources from multiple servers into a single global namespace. The Gluster Container Storage Interface module creates a Kubernetes StorageClass provisioner to access Gluster storage.

The Gluster Container Storage Interface module is deployed by the Helm module into a Kubernetes cluster.