Red Hat OpenShift Container Platform

Build, deploy and manage your applications across cloud- and on-premise infrastructure

Red Hat OpenShift Dedicated

Single-tenant, high-availability Kubernetes clusters in the public cloud

Red Hat OpenShift Online

The fastest way for developers to build, host and scale applications in the public cloud

All products
  • Learn more about OpenShift Container Platform
  • About OpenShift Kubernetes Engine
  • Kubernetes overview
  • Legal notice
  • OpenShift Container Platform 4.8 release notes
  • Architecture overview
  • Product architecture
  • Installation and update
  • Control plane architecture
  • Understanding OpenShift development
  • Red Hat Enterprise Linux CoreOS
  • Admission plugins
  • Installation overview
  • Selecting an installation method and preparing a cluster
  • Mirroring images for a disconnected installation
  • Preparing to install on AWS
  • Configuring an AWS account
  • Manually creating IAM
  • Installing a cluster quickly on AWS
  • Installing a cluster on AWS with customizations
  • Installing a cluster on AWS with network customizations
  • Installing a cluster on AWS in a restricted network
  • Installing a cluster on AWS into an existing VPC
  • Installing a private cluster on AWS
  • Installing a cluster on AWS into a government or secret region
  • Installing a cluster on AWS using CloudFormation templates
  • Installing a cluster on AWS in a restricted network with user-provisioned infrastructure
  • Uninstalling a cluster on AWS
  • Preparing to install on Azure
  • Configuring an Azure account
  • Manually creating IAM
  • Installing a cluster quickly on Azure
  • Installing a cluster on Azure with customizations
  • Installing a cluster on Azure with network customizations
  • Installing a cluster on Azure into an existing VNet
  • Installing a private cluster on Azure
  • Installing a cluster on Azure into a government region
  • Installing a cluster on Azure using ARM templates
  • Uninstalling a cluster on Azure
  • Preparing to install on GCP
  • Configuring a GCP project
  • Manually creating IAM
  • Installing a cluster quickly on GCP
  • Installing a cluster on GCP with customizations
  • Installing a cluster on GCP with network customizations
  • Installing a cluster on GCP in a restricted network
  • Installing a cluster on GCP into an existing VPC
  • Installing a private cluster on GCP
  • Installing a cluster on GCP using Deployment Manager templates
  • Installing a cluster into a shared VPC on GCP using Deployment Manager templates
  • Installing a cluster on GCP in a restricted network with user-provisioned infrastructure
  • Uninstalling a cluster on GCP
  • Preparing to install on bare metal
  • Installing a user-provisioned cluster on bare metal
  • Installing a user-provisioned bare metal cluster with network customizations
  • Installing a user-provisioned bare metal cluster on a restricted network
  • Overview
  • Prerequisites
  • Setting up the environment for an OpenShift installation
  • Post-installation configuration
  • Expanding the cluster
  • Troubleshooting
  • Preparing to install with z/VM on IBM Z and LinuxONE
  • Installing a cluster with z/VM on IBM Z and LinuxONE
  • Restricted network IBM Z installation with z/VM
  • Preparing to install with RHEL KVM on IBM Z and LinuxONE
  • Installing a cluster with RHEL KVM on IBM Z and LinuxONE
  • Restricted network IBM Z installation with RHEL KVM
  • Preparing to install on IBM Power Systems
  • Installing a cluster on IBM Power Systems
  • Restricted network IBM Power Systems installation
  • Preparing to install on OpenStack
  • Installing a cluster on OpenStack with customizations
  • Installing a cluster on OpenStack with Kuryr
  • Installing a cluster that supports SR-IOV compute machines on OpenStack
  • Installing a cluster on OpenStack on your own infrastructure
  • Installing a cluster on OpenStack with Kuryr on your own infrastructure
  • Installing a cluster on OpenStack on your own SR-IOV infrastructure
  • Installing a cluster on OpenStack in a restricted network
  • Uninstalling a cluster on OpenStack
  • Uninstalling a cluster on OpenStack from your own infrastructure
  • Preparing to install on RHV
  • Installing a cluster quickly on RHV
  • Installing a cluster on RHV with customizations
  • Installing a cluster on RHV with user-provisioned infrastructure
  • Installing a cluster on RHV in a restricted network
  • Uninstalling a cluster on RHV
  • Preparing to install on vSphere
  • Installing a cluster on vSphere
  • Installing a cluster on vSphere with customizations
  • Installing a cluster on vSphere with network customizations
  • Installing a cluster on vSphere with user-provisioned infrastructure
  • Installing a cluster on vSphere with user-provisioned infrastructure and network customizations
  • Installing a cluster on vSphere in a restricted network
  • Installing a cluster on vSphere in a restricted network with user-provisioned infrastructure
  • Uninstalling a cluster on vSphere that uses installer-provisioned infrastructure
  • Using the vSphere Problem Detector Operator
  • Preparing to install on VMC
  • Installing a cluster on VMC
  • Installing a cluster on VMC with customizations
  • Installing a cluster on VMC with network customizations
  • Installing a cluster on VMC in a restricted network
  • Installing a cluster on VMC with user-provisioned infrastructure
  • Installing a cluster on VMC with user-provisioned infrastructure and network customizations
  • Installing a cluster on VMC in a restricted network with user-provisioned infrastructure
  • Uninstalling a cluster on VMC
  • Installing a cluster on any platform
  • Customizing nodes
  • Configuring your firewall
  • Validating an installation
  • Troubleshooting installation issues
  • Support for FIPS cryptography
  • Post-installation configuration overview
  • Configuring a private cluster
  • Machine configuration tasks
  • Cluster tasks
  • Node tasks
  • Network configuration
  • Storage configuration
  • Preparing for users
  • Configuring alert notifications
  • Configuring additional devices in an IBM Z or LinuxONE environment
  • Understanding OpenShift updates
  • Updating clusters overview
  • Understanding upgrade channels
  • Preparing to perform an EUS-to-EUS update
  • Updating a cluster using the web console
  • Updating a cluster using the CLI
  • Performing update using canary rollout strategy
  • Updating a cluster that includes RHEL compute machines
  • About cluster updates in a disconnected environment
  • Mirroring the OpenShift Container Platform image repository
  • Updating a cluster in a disconnected environment using OSUS
  • Updating a cluster in a disconnected environment without OSUS
  • Support overview
  • Managing your cluster resources
  • Getting support
  • About remote health monitoring
  • Showing data collected by remote health monitoring
  • Opting out of remote health reporting
  • Using Insights to identify issues with your cluster
  • Using Insights Operator
  • Using remote health reporting in a restricted network
  • Gathering data about your cluster
  • Summarizing cluster specifications
  • Troubleshooting installations
  • Verifying node health
  • Troubleshooting CRI-O container runtime issues
  • Troubleshooting operating system issues
  • Troubleshooting network issues
  • Troubleshooting Operator issues
  • Investigating pod issues
  • Troubleshooting the Source-to-Image process
  • Troubleshooting storage issues
  • Troubleshooting Windows container workload issues
  • Investigating monitoring issues
  • Diagnosing OpenShift CLI (oc) issues
  • Web console overview
  • Accessing the web console
  • Viewing cluster information
  • Configuring the web console
  • Customizing the web console
  • Web terminal
  • Disabling the web console
  • Creating quick start tutorials
  • CLI tools overview
  • Getting started with the OpenShift CLI
  • Configuring the OpenShift CLI
  • Managing CLI profiles
  • Extending the OpenShift CLI with plugins
  • OpenShift CLI developer command reference
  • OpenShift CLI administrator command reference
  • Usage of oc and kubectl commands
  • odo release notes
  • Understanding odo
  • Installing odo
  • Configuring the odo CLI
  • odo CLI reference
  • Knative CLI (kn) for use with OpenShift Serverless
  • Installing tkn
  • Configuring tkn
  • Basic tkn commands
  • opm CLI
  • Installing the Operator SDK CLI
  • Operator SDK CLI reference
  • Security and compliance overview
  • Understanding container security
  • Understanding host and VM security
  • Hardening Red Hat Enterprise Linux CoreOS
  • Container image signatures
  • Understanding compliance
  • Securing container content
  • Using container registries securely
  • Securing the build process
  • Deploying containers
  • Securing the container platform
  • Securing networks
  • Securing attached storage
  • Monitoring cluster events and logs
  • Replacing the default ingress certificate
  • Adding API server certificates
  • Securing service traffic using service serving certificates
  • Updating the CA bundle
  • User-provided certificates for the API server
  • Proxy certificates
  • Service CA certificates
  • Node certificates
  • Bootstrap certificates
  • etcd certificates
  • OLM certificates
  • Aggregated API client certificates
  • Machine Config Operator certificates
  • User-provided certificates for default ingress
  • Ingress certificates
  • Monitoring and cluster logging Operator component certificates
  • Control plane certificates
  • Compliance Operator release notes
  • Supported compliance profiles
  • Installing the Compliance Operator
  • Updating the Compliance Operator
  • Compliance Operator scans
  • Understanding the Compliance Operator
  • Managing the Compliance Operator
  • Tailoring the Compliance Operator
  • Retrieving Compliance Operator raw results
  • Managing Compliance Operator remediation
  • Performing advanced Compliance Operator tasks
  • Troubleshooting the Compliance Operator
  • Uninstalling the Compliance Operator
  • Using the oc-compliance plugin
  • Understanding the Custom Resource Definitions
  • File Integrity Operator release notes
  • Installing the File Integrity Operator
  • Updating the File Integrity Operator
  • Understanding the File Integrity Operator
  • Configuring the File Integrity Operator
  • Performing advanced File Integrity Operator tasks
  • Troubleshooting the File Integrity Operator
  • Viewing audit logs
  • Configuring the audit log policy
  • Configuring TLS security profiles
  • Configuring seccomp profiles
  • Allowing JavaScript-based access to the API server from additional hosts
  • Encrypting etcd data
  • Scanning pods for vulnerabilities
  • Authentication and authorization overview
  • Understanding authentication
  • Configuring the internal OAuth server
  • Configuring OAuth clients
  • Managing user-owned OAuth access tokens
  • Understanding identity provider configuration
  • Configuring an htpasswd identity provider
  • Configuring a Keystone identity provider
  • Configuring an LDAP identity provider
  • Configuring a basic authentication identity provider
  • Configuring a request header identity provider
  • Configuring a GitHub or GitHub Enterprise identity provider
  • Configuring a GitLab identity provider
  • Configuring a Google identity provider
  • Configuring an OpenID Connect identity provider
  • Using RBAC to define and apply permissions
  • Removing the kubeadmin user
  • Understanding and creating service accounts
  • Using service accounts in applications
  • Using a service account as an OAuth client
  • Scoping tokens
  • Using bound service account tokens
  • Managing security context constraints
  • Impersonating the system:admin user
  • Syncing LDAP groups
  • About the Cloud Credential Operator
  • Using mint mode
  • Using passthrough mode
  • Using manual mode
  • Using manual mode with STS
  • Understanding networking
  • Accessing hosts
  • Networking Operators overview
  • Understanding the Cluster Network Operator
  • Understanding the DNS Operator
  • Understanding the Ingress Operator
  • Verifying connectivity to an endpoint
  • Configuring the node port service range
  • Configuring IP failover
  • Using SCTP
  • Configuring PTP hardware
  • About network policy
  • Logging network policy
  • Creating a network policy
  • Viewing a network policy
  • Editing a network policy
  • Deleting a network policy
  • Defining a default network policy for projects
  • Configuring multitenant network policy
  • Understanding multiple networks
  • Configuring an additional network
  • About virtual routing and forwarding
  • Configuring multi-network policy
  • Attaching a pod to an additional network
  • Removing a pod from an additional network
  • Editing an additional network
  • Removing an additional network
  • Assigning a secondary network to a VRF
  • About Single Root I/O Virtualization (SR-IOV) hardware networks
  • Installing the SR-IOV Operator
  • Configuring the SR-IOV Operator
  • Configuring an SR-IOV network device
  • Configuring an SR-IOV Ethernet network attachment
  • Configuring an SR-IOV InfiniBand network attachment
  • Adding a pod to an SR-IOV network
  • Using high performance multicast
  • Using DPDK and RDMA
  • Uninstalling the SR-IOV Operator
  • About the OpenShift SDN default CNI network provider
  • Configuring egress IPs for a project
  • Configuring an egress firewall for a project
  • Viewing an egress firewall for a project
  • Editing an egress firewall for a project
  • Removing an egress firewall from a project
  • Considerations for the use of an egress router pod
  • Deploying an egress router pod in redirect mode
  • Deploying an egress router pod in HTTP proxy mode
  • Deploying an egress router pod in DNS proxy mode
  • Configuring an egress router pod destination list from a config map
  • Enabling multicast for a project
  • Disabling multicast for a project
  • Configuring multitenant isolation
  • Configuring kube-proxy
  • About the OVN-Kubernetes network provider
  • Migrating from the OpenShift SDN cluster network provider
  • Rolling back to the OpenShift SDN cluster network provider
  • Converting to IPv4/IPv6 dual stack networking
  • IPsec encryption configuration
  • Configuring an egress firewall for a project
  • Viewing an egress firewall for a project
  • Editing an egress firewall for a project
  • Removing an egress firewall from a project
  • Configuring an egress IP address
  • Assigning an egress IP address
  • Considerations for the use of an egress router pod
  • Deploying an egress router pod in redirect mode
  • Enabling multicast for a project
  • Disabling multicast for a project
  • Tracking network flows
  • Configuring hybrid networking
  • Route configuration
  • Secured routes
  • Overview
  • Configuring ExternalIPs for services
  • Configuring ingress cluster traffic using an Ingress Controller
  • Configuring ingress cluster traffic using a load balancer
  • Configuring ingress cluster traffic on AWS using a Network Load Balancer
  • Configuring ingress cluster traffic using a service external IP
  • Configuring ingress cluster traffic using a NodePort
  • About the Kubernetes NMState Operator
  • Observing node network state
  • Updating node network configuration
  • Troubleshooting node network configuration
  • Configuring the cluster-wide proxy
  • Configuring a custom PKI
  • Load balancing on OpenStack
  • Associating secondary interfaces metrics to network attachments
  • Storage overview
  • Understanding ephemeral storage
  • Understanding persistent storage
  • Persistent storage using AWS Elastic Block Store
  • Persistent storage using Azure Disk
  • Persistent storage using Azure File
  • Persistent storage using Cinder
  • Persistent storage using Fibre Channel
  • Persistent storage using FlexVolume
  • Persistent storage using GCE Persistent Disk
  • Persistent storage using hostPath
  • Persistent Storage using iSCSI
  • Persistent storage using local volumes
  • Persistent storage using NFS
  • Persistent storage using Red Hat OpenShift Container Storage
  • Persistent storage using VMware vSphere
  • Configuring CSI volumes
  • CSI inline ephemeral volumes
  • CSI volume snapshots
  • CSI volume cloning
  • CSI automatic migration
  • AWS Elastic Block Store CSI Driver Operator
  • Azure Disk CSI Driver Operator
  • GCP PD CSI Driver Operator
  • OpenStack Cinder CSI Driver Operator
  • OpenStack Manila CSI Driver Operator
  • Red Hat Virtualization CSI Driver Operator
  • VMware vSphere CSI Driver Operator
  • Expanding persistent volumes
  • Dynamic provisioning
  • Registry overview
  • Image Registry Operator in OpenShift Container Platform
  • Configuring the registry for AWS user-provisioned infrastructure
  • Configuring the registry for GCP user-provisioned infrastructure
  • Configuring the registry for OpenStack user-provisioned infrastructure
  • Configuring the registry for Azure user-provisioned infrastructure
  • Configuring the registry for OpenStack
  • Configuring the registry for bare metal
  • Configuring the registry for vSphere
  • Accessing the registry
  • Exposing the registry
  • Operators overview
  • What are Operators?
  • Packaging formats
  • Common terms
  • Concepts and resources
  • Architecture
  • Workflow
  • Dependency resolution
  • Operator groups
  • Operator conditions
  • Metrics
  • Webhooks
  • OperatorHub
  • Red Hat-provided Operator catalogs
  • Extending the Kubernetes API with CRDs
  • Managing resources from CRDs
  • Creating applications from installed Operators
  • Installing Operators in your namespace
  • Adding Operators to a cluster
  • Updating installed Operators
  • Deleting Operators from a cluster
  • Configuring proxy support
  • Viewing Operator status
  • Managing Operator conditions
  • Allowing non-cluster administrators to install Operators
  • Managing custom catalogs
  • Using OLM on restricted networks
  • About the Operator SDK
  • Installing the Operator SDK CLI
  • Upgrading projects for newer Operator SDK versions
  • Getting started
  • Tutorial
  • Project layout
  • Getting started
  • Tutorial
  • Project layout
  • Ansible support
  • Kubernetes Collection for Ansible
  • Using Ansible inside an Operator
  • Custom resource status management
  • Getting started
  • Tutorial
  • Project layout
  • Helm support
  • Defining cluster service versions (CSVs)
  • Working with bundle images
  • Validating Operators using the scorecard
  • Configuring built-in monitoring with Prometheus
  • Configuring leader election
  • Migrating package manifest projects to bundle format
  • Operator SDK CLI reference
  • Cluster Operators reference
  • CI/CD overview
  • Understanding image builds
  • Understanding build configurations
  • Creating build inputs
  • Managing build output
  • Using build strategies
  • Custom image builds with Buildah
  • Performing basic builds
  • Triggering and modifying builds
  • Performing advanced builds
  • Using Red Hat subscriptions in builds
  • Securing builds by strategy
  • Build configuration resources
  • Troubleshooting builds
  • Setting up additional trusted certificate authorities for builds
  • Migrating from Jenkins to Tekton
  • OpenShift Pipelines release notes
  • Understanding OpenShift Pipelines
  • Installing OpenShift Pipelines
  • Uninstalling OpenShift Pipelines
  • Creating CI/CD solutions for applications using OpenShift Pipelines
  • Working with OpenShift Pipelines using the Developer perspective
  • Reducing resource consumption of OpenShift Pipelines
  • Using pods in a privileged security context
  • Securing webhooks with event listeners
  • Authenticating pipelines using git secret
  • Viewing pipeline logs using the OpenShift Logging Operator
  • OpenShift GitOps release notes
  • Understanding OpenShift GitOps
  • Installing OpenShift GitOps
  • Uninstalling OpenShift GitOps
  • Configuring an OpenShift cluster by deploying an application with cluster configurations
  • Deploying a Spring Boot application with Argo CD
  • Configuring SSO for Argo CD using Dex
  • Configuring SSO for Argo CD using Keycloak
  • Running Control Plane Workloads on Infra nodes
  • Sizing requirements for GitOps Operator
  • Overview of images
  • Configuring the Cluster Samples Operator
  • Using the Cluster Samples Operator with an alternate registry
  • Creating images
  • Managing images overview
  • Tagging images
  • Image pull policy
  • Using image pull secrets
  • Managing image streams
  • Using image streams with Kubernetes resources
  • Triggering updates on image stream changes
  • Image configuration resources
  • Using templates
  • Using Ruby on Rails
  • Using images overview
  • Configuring Jenkins images
  • Jenkins agent
  • Source-to-image
  • Customizing source-to-image images
  • Building Applications overview
  • Working with projects
  • Creating a project as another user
  • Configuring project creation
  • Creating applications using the Developer perspective
  • Creating applications from installed Operators
  • Creating applications using the CLI
  • Viewing application composition using the Topology view
  • Understanding Helm
  • Installing Helm
  • Configuring custom Helm chart repositories
  • Working with Helm releases
  • Understanding Deployments and DeploymentConfigs
  • Managing deployment processes
  • Using deployment strategies
  • Using route-based deployment strategies
  • Resource quotas per project
  • Resource quotas across multiple projects
  • Using config maps with applications
  • Monitoring project and application metrics using the Developer perspective
  • Monitoring application health
  • Editing applications
  • Pruning objects to reclaim resources
  • Idling applications
  • Deleting applications
  • Using the Red Hat Marketplace
  • Overview of machine management
  • Creating a machine set on AWS
  • Creating a machine set on Azure
  • Creating a machine set on GCP
  • Creating a machine set on OpenStack
  • Creating a machine set on RHV
  • Creating a machine set on vSphere
  • Manually scaling a machine set
  • Modifying a machine set
  • Deleting a machine
  • Applying autoscaling to a cluster
  • Creating infrastructure machine sets
  • Adding a RHEL compute machine
  • Adding more RHEL compute machines
  • Adding compute machines to user-provisioned infrastructure clusters
  • Adding compute machines to AWS using CloudFormation templates
  • Adding compute machines to vSphere
  • Adding compute machines to bare metal
  • Deploying machine health checks
  • Overview of nodes
  • About pods
  • Viewing pods
  • Configuring a cluster for pods
  • Automatically scaling pods with the horizontal pod autoscaler
  • Automatically adjust pod resource levels with the vertical pod autoscaler
  • Providing sensitive data to pods
  • Creating and using config maps
  • Using Device Manager to make devices available to nodes
  • Including pod priority in pod scheduling decisions
  • Placing pods on specific nodes using node selectors
  • About pod placement using the scheduler
  • Configuring the default scheduler to control pod placement
  • Scheduling pods using a scheduler profile
  • Placing pods relative to other pods using pod affinity and anti-affinity rules
  • Controlling pod placement on nodes using node affinity rules
  • Placing pods onto overcommited nodes
  • Controlling pod placement using node taints
  • Placing pods on specific nodes using node selectors
  • Controlling pod placement using pod topology spread constraints
  • Running a custom scheduler
  • Evicting pods using the descheduler
  • Running background tasks on nodes automatically with daemonsets
  • Running tasks in pods using jobs
  • Viewing and listing the nodes in your cluster
  • Working with nodes
  • Managing nodes
  • Managing the maximum number of pods per node
  • Using the Node Tuning Operator
  • Remediating nodes with the Poison Pill Operator
  • Understanding node rebooting
  • Freeing node resources using garbage collection
  • Allocating resources for nodes
  • Allocating specific CPUs for nodes in a cluster
  • Configuring the TLS security profile for the kubelet
  • Machine Config Daemon metrics
  • Creating infrastructure nodes
  • Using containers
  • Using Init Containers to perform tasks before a pod is deployed
  • Using volumes to persist container data
  • Mapping volumes using projected volumes
  • Allowing containers to consume API objects
  • Copying files to or from a container
  • Executing remote commands in a container
  • Using port forwarding to access applications in a container
  • Using sysctls in containers
  • Viewing system event information in a cluster
  • Analyzing cluster resource levels
  • Setting limit ranges
  • Configuring cluster memory to meet container memory and risk requirements
  • Configuring your cluster to place pods on overcommited nodes
  • Enabling features using FeatureGates
  • Using remote worker node at the network edge
  • Red Hat OpenShift support for Windows Containers overview
  • Red Hat OpenShift support for Windows Containers release notes
  • Understanding Windows container workloads
  • Enabling Windows container workloads
  • Creating a Windows MachineSet object on AWS
  • Creating a Windows MachineSet object on Azure
  • Creating a Windows MachineSet object on vSphere
  • Scheduling Windows container workloads
  • Windows node upgrades
  • Using Bring-Your-Own-Host Windows instances as nodes
  • Removing Windows nodes
  • Disabling Windows container workloads
  • OpenShift sanboxed containers release notes
  • Understanding OpenShift sandboxed containers
  • Deploying OpenShift sandboxed containers workloads
  • Uninstalling OpenShift sandboxed containers workloads
  • Upgrade OpenShift sandboxed containers
  • Release notes
  • About Logging
  • Installing Logging
  • About the Cluster Logging custom resource
  • Configuring the logging collector
  • Configuring the log store
  • Configuring the log visualizer
  • Configuring Logging storage
  • Configuring CPU and memory limits for Logging components
  • Using tolerations to control Logging pod placement
  • Moving the Logging resources with node selectors
  • Configuring systemd-journald for Logging
  • Maintenance and support
  • Viewing logs for a specific resource
  • Viewing cluster logs in Kibana
  • Forwarding logs to third party systems
  • Enabling JSON logging
  • Collecting and storing Kubernetes events
  • Updating Logging
  • Viewing cluster dashboards
  • Viewing Logging status
  • Viewing the status of the log store
  • Understanding Logging alerts
  • Collecting logging data for Red Hat Support
  • Troubleshooting for Critical Alerts
  • Uninstalling Logging
  • Exported fields
  • Monitoring overview
  • Configuring the monitoring stack
  • Enabling monitoring for user-defined projects
  • Managing metrics
  • Managing alerts
  • Reviewing monitoring dashboards
  • Accessing third-party UIs
  • Troubleshooting monitoring issues
  • About metering
  • Installing metering
  • Upgrading metering
  • About configuring metering
  • Common configuration options
  • Configuring persistent storage
  • Configuring the Hive metastore
  • Configuring the reporting operator
  • Configuring AWS billing correlation
  • About reports
  • Storage Locations
  • Using metering
  • Examples of using metering
  • Troubleshooting and debugging
  • Uninstalling metering
  • Recommended host practices
  • Recommended host practices for IBM Z & LinuxONE environments
  • Recommended cluster scaling practices
  • Using the Node Tuning Operator
  • Using Cluster Loader
  • Using CPU Manager
  • Using Topology Manager
  • Scaling the Cluster Monitoring Operator
  • The Node Feature Discovery Operator
  • The Driver Toolkit
  • Planning your environment according to object maximums
  • Optimizing storage
  • Optimizing routing
  • Optimizing networking
  • Managing bare metal hosts
  • What huge pages do and how they are consumed by apps
  • Performance Addon Operator for low latency nodes
  • Performing latency tests for platform verification
  • Creating a performance profile
  • Overview of backup and restore operations
  • Shutting down a cluster gracefully
  • Restarting a cluster gracefully
  • OADP features and plugins
  • About installing OADP
  • Installing and configuring OADP with AWS
  • Installing and configuring OADP with Azure
  • Installing and configuring OADP with GCP
  • Installing and configuring OADP with MCG
  • Installing and configuring OADP with OCS
  • Uninstalling OADP
  • Backing up applications
  • Restoring applications
  • Troubleshooting
  • Backing up etcd data
  • Replacing an unhealthy etcd member
  • About disaster recovery
  • Restoring to a previous cluster state
  • Recovering from expired control plane certificates
  • Migrating from version 3 to 4 overview
  • About migrating from OpenShift Container Platform 3 to 4
  • Differences between OpenShift Container Platform 3 and 4
  • Network considerations
  • About MTC
  • Installing MTC
  • Installing MTC in a restricted network environment
  • Upgrading MTC
  • Premigration checklists
  • Migrating your applications
  • Advanced migration options
  • Troubleshooting
  • About MTC
  • MTC release notes
  • Installing MTC
  • Installing MTC in a restricted network environment
  • Upgrading MTC
  • Premigration checklists
  • Network considerations
  • Migrating your applications
  • Advanced migration options
  • Troubleshooting
  • Understanding API tiers
  • API compatibility guidelines
  • Editing kubelet log level verbosity and gathering logs
  • API list
  • Index
  • About Authorization APIs
  • LocalResourceAccessReview [authorization.openshift.io/v1]
  • LocalSubjectAccessReview [authorization.openshift.io/v1]
  • ResourceAccessReview [authorization.openshift.io/v1]
  • SelfSubjectRulesReview [authorization.openshift.io/v1]
  • SubjectAccessReview [authorization.openshift.io/v1]
  • SubjectRulesReview [authorization.openshift.io/v1]
  • TokenReview [authentication.k8s.io/v1]
  • LocalSubjectAccessReview [authorization.k8s.io/v1]
  • SelfSubjectAccessReview [authorization.k8s.io/v1]
  • SelfSubjectRulesReview [authorization.k8s.io/v1]
  • SubjectAccessReview [authorization.k8s.io/v1]
  • About Autoscale APIs
  • ClusterAutoscaler [autoscaling.openshift.io/v1]
  • MachineAutoscaler [autoscaling.openshift.io/v1beta1]
  • HorizontalPodAutoscaler [autoscaling/v1]
  • About Config APIs
  • APIServer [config.openshift.io/v1]
  • Authentication [config.openshift.io/v1]
  • Build [config.openshift.io/v1]
  • ClusterOperator [config.openshift.io/v1]
  • ClusterVersion [config.openshift.io/v1]
  • Console [config.openshift.io/v1]
  • DNS [config.openshift.io/v1]
  • FeatureGate [config.openshift.io/v1]
  • HelmChartRepository [helm.openshift.io/v1beta1]
  • Image [config.openshift.io/v1]
  • Infrastructure [config.openshift.io/v1]
  • Ingress [config.openshift.io/v1]
  • Network [config.openshift.io/v1]
  • OAuth [config.openshift.io/v1]
  • OperatorHub [config.openshift.io/v1]
  • Project [config.openshift.io/v1]
  • Proxy [config.openshift.io/v1]
  • Scheduler [config.openshift.io/v1]
  • About Console APIs
  • ConsoleCLIDownload [console.openshift.io/v1]
  • ConsoleExternalLogLink [console.openshift.io/v1]
  • ConsoleLink [console.openshift.io/v1]
  • ConsoleNotification [console.openshift.io/v1]
  • ConsolePlugin [console.openshift.io/v1alpha1]
  • ConsoleQuickStart [console.openshift.io/v1]
  • ConsoleYAMLSample [console.openshift.io/v1]
  • About Extension APIs
  • APIService [apiregistration.k8s.io/v1]
  • CustomResourceDefinition [apiextensions.k8s.io/v1]
  • MutatingWebhookConfiguration [admissionregistration.k8s.io/v1]
  • ValidatingWebhookConfiguration [admissionregistration.k8s.io/v1]
  • About Image APIs
  • Image [image.openshift.io/v1]
  • ImageSignature [image.openshift.io/v1]
  • ImageStreamImage [image.openshift.io/v1]
  • ImageStreamImport [image.openshift.io/v1]
  • ImageStreamMapping [image.openshift.io/v1]
  • ImageStream [image.openshift.io/v1]
  • ImageStreamTag [image.openshift.io/v1]
  • ImageTag [image.openshift.io/v1]
  • About Machine APIs
  • ContainerRuntimeConfig [machineconfiguration.openshift.io/v1]
  • ControllerConfig [machineconfiguration.openshift.io/v1]
  • KubeletConfig [machineconfiguration.openshift.io/v1]
  • MachineConfigPool [machineconfiguration.openshift.io/v1]
  • MachineConfig [machineconfiguration.openshift.io/v1]
  • MachineHealthCheck [machine.openshift.io/v1beta1]
  • Machine [machine.openshift.io/v1beta1]
  • MachineSet [machine.openshift.io/v1beta1]
  • About Metadata APIs
  • APIRequestCount [apiserver.openshift.io/v1]
  • Binding [core/v1]
  • ComponentStatus [core/v1]
  • ConfigMap [core/v1]
  • ControllerRevision [apps/v1]
  • Event [events.k8s.io/v1]
  • Event [core/v1]
  • Lease [coordination.k8s.io/v1]
  • Namespace [core/v1]
  • About Monitoring APIs
  • Alertmanager [monitoring.coreos.com/v1]
  • AlertmanagerConfig [monitoring.coreos.com/v1alpha1]
  • PodMonitor [monitoring.coreos.com/v1]
  • Probe [monitoring.coreos.com/v1]
  • Prometheus [monitoring.coreos.com/v1]
  • PrometheusRule [monitoring.coreos.com/v1]
  • ServiceMonitor [monitoring.coreos.com/v1]
  • ThanosRuler [monitoring.coreos.com/v1]
  • About Network APIs
  • ClusterNetwork [network.openshift.io/v1]
  • Endpoints [core/v1]
  • EndpointSlice [discovery.k8s.io/v1]
  • EgressNetworkPolicy [network.openshift.io/v1]
  • EgressRouter [network.operator.openshift.io/v1]
  • HostSubnet [network.openshift.io/v1]
  • Ingress [networking.k8s.io/v1]
  • IngressClass [networking.k8s.io/v1]
  • IPPool [whereabouts.cni.cncf.io/v1alpha1]
  • NetNamespace [network.openshift.io/v1]
  • NetworkAttachmentDefinition [k8s.cni.cncf.io/v1]
  • NetworkPolicy [networking.k8s.io/v1]
  • PodNetworkConnectivityCheck [controlplane.operator.openshift.io/v1alpha1]
  • Route [route.openshift.io/v1]
  • Service [core/v1]
  • About Node APIs
  • Node [core/v1]
  • Profile [tuned.openshift.io/v1]
  • RuntimeClass [node.k8s.io/v1]
  • Tuned [tuned.openshift.io/v1]
  • About OAuth APIs
  • OAuthAccessToken [oauth.openshift.io/v1]
  • OAuthAuthorizeToken [oauth.openshift.io/v1]
  • OAuthClientAuthorization [oauth.openshift.io/v1]
  • OAuthClient [oauth.openshift.io/v1]
  • UserOAuthAccessToken [oauth.openshift.io/v1]
  • About Operator APIs
  • Authentication [operator.openshift.io/v1]
  • CloudCredential [operator.openshift.io/v1]
  • ClusterCSIDriver [operator.openshift.io/v1]
  • Console [operator.openshift.io/v1]
  • Config [operator.openshift.io/v1]
  • Config [imageregistry.operator.openshift.io/v1]
  • Config [samples.operator.openshift.io/v1]
  • CSISnapshotController [operator.openshift.io/v1]
  • DNS [operator.openshift.io/v1]
  • DNSRecord [ingress.operator.openshift.io/v1]
  • Etcd [operator.openshift.io/v1]
  • ImageContentSourcePolicy [operator.openshift.io/v1alpha1]
  • ImagePruner [imageregistry.operator.openshift.io/v1]
  • IngressController [operator.openshift.io/v1]
  • KubeAPIServer [operator.openshift.io/v1]
  • KubeControllerManager [operator.openshift.io/v1]
  • KubeScheduler [operator.openshift.io/v1]
  • KubeStorageVersionMigrator [operator.openshift.io/v1]
  • Network [operator.openshift.io/v1]
  • OpenShiftAPIServer [operator.openshift.io/v1]
  • OpenShiftControllerManager [operator.openshift.io/v1]
  • OperatorPKI [network.operator.openshift.io/v1]
  • ServiceCA [operator.openshift.io/v1]
  • Storage [operator.openshift.io/v1]
  • About OperatorHub APIs
  • CatalogSource [operators.coreos.com/v1alpha1]
  • ClusterServiceVersion [operators.coreos.com/v1alpha1]
  • InstallPlan [operators.coreos.com/v1alpha1]
  • Operator [operators.coreos.com/v1]
  • OperatorCondition [operators.coreos.com/v1]
  • OperatorGroup [operators.coreos.com/v1]
  • PackageManifest [packages.operators.coreos.com/v1]
  • Subscription [operators.coreos.com/v1alpha1]
  • About Policy APIs
  • PodDisruptionBudget [policy/v1]
  • About Project APIs
  • Project [project.openshift.io/v1]
  • ProjectRequest [project.openshift.io/v1]
  • About Provisioning APIs
  • BareMetalHost [metal3.io/v1alpha1]
  • Provisioning [metal3.io/v1alpha1]
  • About RBAC APIs
  • ClusterRoleBinding [rbac.authorization.k8s.io/v1]
  • ClusterRole [rbac.authorization.k8s.io/v1]
  • RoleBinding [rbac.authorization.k8s.io/v1]
  • Role [rbac.authorization.k8s.io/v1]
  • About Role APIs
  • ClusterRoleBinding [authorization.openshift.io/v1]
  • ClusterRole [authorization.openshift.io/v1]
  • RoleBindingRestriction [authorization.openshift.io/v1]
  • RoleBinding [authorization.openshift.io/v1]
  • Role [authorization.openshift.io/v1]
  • About Schedule and quota APIs
  • AppliedClusterResourceQuota [quota.openshift.io/v1]
  • ClusterResourceQuota [quota.openshift.io/v1]
  • FlowSchema [flowcontrol.apiserver.k8s.io/v1beta1]
  • LimitRange [core/v1]
  • PriorityClass [scheduling.k8s.io/v1]
  • PriorityLevelConfiguration [flowcontrol.apiserver.k8s.io/v1beta1]
  • ResourceQuota [core/v1]
  • About Security APIs
  • CertificateSigningRequest [certificates.k8s.io/v1]
  • CredentialsRequest [cloudcredential.openshift.io/v1]
  • PodSecurityPolicyReview [security.openshift.io/v1]
  • PodSecurityPolicySelfSubjectReview [security.openshift.io/v1]
  • PodSecurityPolicySubjectReview [security.openshift.io/v1]
  • RangeAllocation [security.openshift.io/v1]
  • Secret [core/v1]
  • SecurityContextConstraints [security.openshift.io/v1]
  • ServiceAccount [core/v1]
  • About Storage APIs
  • CSIDriver [storage.k8s.io/v1]
  • CSINode [storage.k8s.io/v1]
  • CSIStorageCapacity [storage.k8s.io/v1beta1]
  • PersistentVolumeClaim [core/v1]
  • StorageClass [storage.k8s.io/v1]
  • StorageState [migration.k8s.io/v1alpha1]
  • StorageVersionMigration [migration.k8s.io/v1alpha1]
  • VolumeAttachment [storage.k8s.io/v1]
  • VolumeSnapshot [snapshot.storage.k8s.io/v1]
  • VolumeSnapshotClass [snapshot.storage.k8s.io/v1]
  • VolumeSnapshotContent [snapshot.storage.k8s.io/v1]
  • About Template APIs
  • BrokerTemplateInstance [template.openshift.io/v1]
  • PodTemplate [core/v1]
  • Template [template.openshift.io/v1]
  • TemplateInstance [template.openshift.io/v1]
  • About User and group APIs
  • Group [user.openshift.io/v1]
  • Identity [user.openshift.io/v1]
  • UserIdentityMapping [user.openshift.io/v1]
  • User [user.openshift.io/v1]
  • About Workloads APIs
  • BuildConfig [build.openshift.io/v1]
  • Build [build.openshift.io/v1]
  • CronJob [batch/v1]
  • DaemonSet [apps/v1]
  • Deployment [apps/v1]
  • DeploymentConfig [apps.openshift.io/v1]
  • Job [batch/v1]
  • Pod [core/v1]
  • ReplicationController [core/v1]
  • PersistentVolume [core/v1]
  • ReplicaSet [apps/v1]
  • StatefulSet [apps/v1]
  • About OpenShift Service Mesh
  • Service Mesh 2.x release notes
  • Service Mesh architecture
  • Service Mesh deployment models
  • Service Mesh and Istio differences
  • Preparing to install Service Mesh
  • Installing the Operators
  • Creating the ServiceMeshControlPlane
  • Adding workloads to a service mesh
  • Enabling sidecar injection
  • Upgrading Service Mesh
  • Managing users and profiles
  • Security
  • Traffic management
  • Metrics, logs, and traces
  • Performance and scalability
  • Deploying to production
  • Federation
  • Extensions
  • 3scale WebAssembly for 2.1
  • 3scale Istio adapter for 2.0
  • Troubleshooting Service Mesh
  • Control plane configuration reference
  • Kiali configuration reference
  • Jaeger configuration reference
  • Uninstalling Service Mesh
  • Service Mesh 1.x release notes
  • Service Mesh architecture
  • Service Mesh and Istio differences
  • Preparing to install Service Mesh
  • Installing Service Mesh
  • Security
  • Traffic management
  • Deploying applications on Service Mesh
  • Data visualization and observability
  • Custom resources
  • 3scale Istio adapter for 1.x
  • Removing Service Mesh
  • Distributed tracing release notes
  • Distributed tracing architecture
  • Installing distributed tracing
  • Configuring the distributed tracing platform
  • Configuring distributed tracing data collection
  • Upgrading distributed tracing
  • Removing distributed tracing
  • About OpenShift Virtualization
  • Start here with OpenShift Virtualization
  • OpenShift Virtualization release notes
  • Preparing your cluster for OpenShift Virtualization
  • Specifying nodes for OpenShift Virtualization components
  • Installing OpenShift Virtualization using the web console
  • Installing OpenShift Virtualization using the CLI
  • Installing the virtctl client
  • Uninstalling OpenShift Virtualization using the web console
  • Uninstalling OpenShift Virtualization using the CLI
  • Upgrading OpenShift Virtualization
  • Additional security privileges granted for kubevirt-controller and virt-launcher
  • Using the CLI tools
  • Creating virtual machines
  • Editing virtual machines
  • Editing boot order
  • Deleting virtual machines
  • Managing virtual machine instances
  • Controlling virtual machine states
  • Accessing virtual machine consoles
  • Triggering virtual machine failover by resolving a failed node
  • Installing the QEMU guest agent on virtual machines
  • Viewing the QEMU guest agent information for virtual machines
  • Managing config maps, secrets, and service accounts in virtual machines
  • Installing VirtIO driver on an existing Windows virtual machine
  • Installing VirtIO driver on a new Windows virtual machine
  • Working with resource quotas for virtual machines
  • Specifying nodes for virtual machines
  • Configuring certificate rotation
  • Automating management tasks
  • EFI mode for virtual machines
  • Configuring PXE booting for virtual machines
  • Managing guest memory
  • Using huge pages with virtual machines
  • Enabling dedicated resources for a virtual machine
  • Scheduling virtual machines
  • Configuring PCI passthrough
  • Configuring a watchdog device
  • TLS certificates for data volume imports
  • Importing virtual machine images with data volumes
  • Importing virtual machine images into block storage with data volumes
  • Importing a Red Hat Virtualization virtual machine
  • Importing a VMware virtual machine or template
  • Enabling user permissions to clone data volumes across namespaces
  • Cloning a virtual machine disk into a new data volume
  • Cloning a virtual machine by using a data volume template
  • Cloning a virtual machine disk into a new block storage data volume
  • Configuring the virtual machine for the default pod network
  • Creating a service to expose a virtual machine
  • Attaching a virtual machine to a Linux bridge network
  • Configuring IP addresses for virtual machines
  • Configuring an SR-IOV network device for virtual machines
  • Defining an SR-IOV network
  • Attaching a virtual machine to an SR-IOV network
  • Viewing the IP address of NICs on a virtual machine
  • Using a MAC address pool for virtual machines
  • Features for storage
  • Configuring local storage for virtual machines
  • Creating data volumes
  • Reserving PVC space for file system overhead
  • Configuring CDI to work with namespaces that have a compute resource quota
  • Managing data volume annotations
  • Using preallocation for data volumes
  • Uploading local disk images by using the web console
  • Uploading local disk images by using the virtctl tool
  • Uploading a local disk image to a block storage data volume
  • Managing offline virtual machine snapshots
  • Moving a local virtual machine disk to a different node
  • Expanding virtual storage by adding blank disk images
  • Cloning a data volume using smart-cloning
  • Creating and using boot sources
  • Hot-plugging virtual disks
  • Using container disks with virtual machines
  • Preparing CDI scratch space
  • Re-using statically provisioned persistent volumes
  • Deleting data volumes
  • Creating virtual machine templates
  • Editing a virtual machine template
  • Enabling dedicated resources for a virtual machine template
  • Deleting a virtual machine template
  • Virtual machine live migration
  • Live migration limits and timeouts
  • Migrating a virtual machine instance to another node
  • Monitoring live migration of a virtual machine instance
  • Cancelling the live migration of a virtual machine instance
  • Configuring virtual machine eviction strategy
  • About node maintenance
  • Setting a node to maintenance mode
  • Resuming a node from maintenance mode
  • Automatic renewal of TLS certificates
  • Managing node labeling for obsolete CPU models
  • Preventing node reconciliation
  • Observing node network state
  • Updating node network configuration
  • Troubleshooting node network configuration
  • Viewing logs
  • Viewing events
  • Diagnosing data volumes using events and conditions
  • Viewing information about virtual machine workloads
  • Monitoring virtual machine health
  • Viewing cluster information
  • OpenShift cluster monitoring, logging, and Telemetry
  • Prometheus queries for virtual resources
  • Collecting data for Red Hat Support
  • Release notes
  • About OpenShift Serverless
  • About OpenShift Serverless Functions
  • Event sources
  • Brokers
  • Channels and subscriptions
  • Installing the OpenShift Serverless Operator
  • Installing Knative Serving
  • Installing Knative Eventing
  • Removing OpenShift Serverless
  • Installing the Knative CLI
  • Configuring the Knative CLI
  • Knative CLI plugins
  • Knative Serving CLI commands
  • Knative Eventing CLI commands
  • Functions commands
  • Serverless applications
  • Autoscaling
  • Traffic management
  • Routing
  • Event sinks
  • Event delivery
  • Listing event sources and event source types
  • Creating an API server source
  • Creating a ping source
  • Custom event sources
  • Creating channels
  • Creating and managing subscriptions
  • Creating brokers
  • Triggers
  • Using Knative Kafka
  • Global configuration
  • Configuring Knative Kafka
  • Serverless components in the Administrator perspective
  • Integrating Service Mesh with OpenShift Serverless
  • Serverless administrator metrics
  • Using metering with OpenShift Serverless
  • High availability
  • Cluster logging with OpenShift Serverless
  • Serverless developer metrics
  • Tracing
  • Support
  • Configuring TLS authentication
  • Configuring JSON Web Token authentication for Knative services
  • Configuring a custom domain for a Knative service
  • Setting up OpenShift Serverless Functions
  • Getting started with functions
  • On-cluster function building and deploying
  • Developing Quarkus functions
  • Developing Node.js functions
  • Developing TypeScript functions
  • Using functions with Knative Eventing
  • Function project configuration in func.yaml
  • Accessing secrets and config maps from functions
  • Adding annotations to functions
  • Functions development reference guide
  • Integrating Serverless with the cost management service
  • Using NVIDIA GPU resources with serverless applications
  • A pod is one or more containers deployed together on one host, and the smallest compute unit that can be defined, deployed, and managed.

    Pods are the rough equivalent of a machine instance (physical or virtual) to a Container. Each pod is allocated its own internal IP address, therefore owning its entire port space, and containers within pods can share their local storage and networking.

    Pods have a lifecycle; they are defined, then they are assigned to run on a node, then they run until their container(s) exit or they are removed for some other reason. Pods, depending on policy and exit code, might be removed after exiting, or can be retained to enable access to the logs of their containers.

    OpenShift Container Platform treats pods as largely immutable; changes cannot be made to a pod definition while it is running. OpenShift Container Platform implements changes by terminating an existing pod and recreating it with modified configuration, base image(s), or both. Pods are also treated as expendable, and do not maintain state when recreated. Therefore pods should usually be managed by higher-level controllers, rather than directly by users.

    OpenShift Container Platform leverages the Kubernetes concept of a pod , which is one or more containers deployed together on one host, and the smallest compute unit that can be defined, deployed, and managed.

    The following is an example definition of a pod from a Rails application. It demonstrates many features of pods, most of which are discussed in other topics and thus only briefly mentioned here:

    Pod object definition (YAML)
    kind: Pod
    apiVersion: v1
    metadata:
      name: example
      namespace: default
      selfLink: /api/v1/namespaces/default/pods/example
      uid: 5cc30063-0265780783bc
      resourceVersion: '165032'
      creationTimestamp: '2019-02-13T20:31:37Z'
      labels:
        app: hello-openshift (1)
      annotations:
        openshift.io/scc: anyuid
    spec:
      restartPolicy: Always (2)
      serviceAccountName: default
      imagePullSecrets:
        - name: default-dockercfg-5zrhb
      priority: 0
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30
      nodeName: ip-10-0-140-16.us-east-2.compute.internal
      securityContext: (3)
        seLinuxOptions:
          level: 's0:c11,c10'
      containers: (4)
        - resources: {}
          terminationMessagePath: /dev/termination-log
          name: hello-openshift
          securityContext:
            capabilities:
              drop:
                - MKNOD
            procMount: Default
          ports:
            - containerPort: 8080
              protocol: TCP
          imagePullPolicy: Always
          volumeMounts: (5)
            - name: default-token-wbqsl
              readOnly: true
              mountPath: /var/run/secrets/kubernetes.io/serviceaccount (6)
          terminationMessagePolicy: File
          image: registry.redhat.io/openshift4/ose-ogging-eventrouter:v4.3 (7)
      serviceAccount: default (8)
      volumes: (9)
        - name: default-token-wbqsl
          secret:
            secretName: default-token-wbqsl
            defaultMode: 420
      dnsPolicy: ClusterFirst
    status:
      phase: Pending
      conditions:
        - type: Initialized
          status: 'True'
          lastProbeTime: null
          lastTransitionTime: '2019-02-13T20:31:37Z'
        - type: Ready
          status: 'False'
          lastProbeTime: null
          lastTransitionTime: '2019-02-13T20:31:37Z'
          reason: ContainersNotReady
          message: 'containers with unready status: [hello-openshift]'
        - type: ContainersReady
          status: 'False'
          lastProbeTime: null
          lastTransitionTime: '2019-02-13T20:31:37Z'
          reason: ContainersNotReady
          message: 'containers with unready status: [hello-openshift]'
        - type: PodScheduled
          status: 'True'
          lastProbeTime: null
          lastTransitionTime: '2019-02-13T20:31:37Z'
      hostIP: 10.0.140.16
      startTime: '2019-02-13T20:31:37Z'
      containerStatuses:
        - name: hello-openshift
          state:
            waiting:
              reason: ContainerCreating
          lastState: {}
          ready: false
          restartCount: 0
          image: openshift/hello-openshift
          imageID: ''
      qosClass: BestEffort
    Pods can be "tagged" with one or more labels, which can then be used to select and manage groups of pods in a single operation. The labels are stored in key/value format in the metadata hash. The pod restart policy with possible values Always , OnFailure , and Never . The default value is Always . OpenShift Container Platform defines a security context for containers which specifies whether they are allowed to run as privileged containers, run as a user of their choice, and more. The default context is very restrictive but administrators can modify this as needed. containers specifies an array of one or more container definitions. The container specifies where external storage volumes are mounted within the container. In this case, there is a volume for storing access to credentials the registry needs for making requests against the OpenShift Container Platform API. Specify the volumes to provide for the pod. Volumes mount at the specified path. Do not mount to the container root, / , or any path that is the same in the host and the container. This can corrupt your host system if the container is sufficiently privileged, such as the host /dev/pts files. It is safe to mount the host by using /host . Each container in the pod is instantiated from its own container image. Pods making requests against the OpenShift Container Platform API is a common enough pattern that there is a serviceAccount field for specifying which service account user the pod should authenticate as when making the requests. This enables fine-grained access control for custom infrastructure components. The pod defines storage volumes that are available to its container(s) to use. In this case, it provides an ephemeral volume for a secret volume containing the default service account tokens.

    If you attach persistent volumes that have high file counts to pods, those pods can fail or can take a long time to start. For more information, see When using Persistent Volumes with high file counts in OpenShift, why do pods fail to start or take an excessive amount of time to achieve "Ready" state? .