Understanding OpenShift 4 Resource Types

Jimin
3 min readAug 31, 2023

--

Openshift, a popular Kubernetes distribution, provides several resource types that are essential for orchestrating containers and managing your applications. These resources are defined using YAML manifests, which specify the characteristics of various resources such as Pods, Services, and Deployments. In this post, we will list commonly used Openshift 4 resource types, focusing on those most relevant to developers.

Common OpenShift 4 Resource Types

  1. Pod:
    A Pod is the basic deployment unit in OpenShift and Kubernetes. It represents a single instance of an application and runs one or more containers.
  2. Service:
    A Service is an abstraction that defines a logical set of Pods and a policy by which to access them.
  3. Deployment:
    A Deployment is used to define the desired state of an application and manage the application’s Pods and ReplicaSets.
    (Note: OpenShift also supports ‘DeploymentConfig’, which provides additional features such as triggering deployments on image changes or config changes.)
  4. ReplicaSet:
    A ReplicaSet is used to maintain a stable set of replica Pods running at any given time.
  5. Route:
    A Route is a way to expose a Service externally.
    (Note: Kubernetes uses ‘Ingress’ to expose services externally, while OpenShift uses ‘Route’.)
  6. ConfigMap:
    A ConfigMap is used to store configuration data as key-value pairs that can be consumed by Pods.
  7. Secret:
    A Secret is used to store sensitive data, such as passwords or keys, which can be used by Pods.
  8. PersistentVolume (PV):
    A PV is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes.
  9. PersistentVolumeClaim (PVC):
    A PVC is a request for storage by a user that can be fulfilled by a PersistentVolume.
  10. StatefulSet:
    A StatefulSet is used for deploying, scaling, and managing a set of Pods with persistent storage and persistent identifiers.
  11. DaemonSet:
    A DaemonSet is used to ensure that all (or some) nodes run a copy of a Pod. As nodes are added or removed from the cluster, the DaemonSet will add or remove the required Pods.
  12. ReplicationController:
    A ReplicationController is the predecessor to ReplicaSet and ensures that a specified number of Pod replicas are running at any one time.
  13. Job:
    A Job is used to run a Pod to completion. It is used to run batch jobs that complete and then terminate.
  14. CronJob:
    A CronJob is used to run Jobs on a time-based schedule.
  15. BuildConfig:
    A BuildConfig is an OpenShift specific resource for defining build configurations. (OpenShift specific)
  16. Build:
    A Build is an OpenShift specific resource that represents a single build of an application. (OpenShift specific)
  17. ImageStream:
    An ImageStream is an OpenShift specific resource for managing sets of images. (OpenShift specific)
  18. ImageStreamTag:
    An ImageStreamTag is an OpenShift specific resource for accessing individual tags in an ImageStream. (OpenShift specific)
  19. ImageStreamImport:
    An ImageStreamImport is an OpenShift specific resource for importing images from external registries. (OpenShift specific)

In conclusion, this article has highlighted some of the most frequently used OpenShift resource types that developers will come across while orchestrating containers and managing applications on OpenShift. Understanding these resources and how to define them in YAML manifests is crucial for effective application management. Stay tuned for a follow-up article where we will dive deeper into how to define these resources in YAML manifests and explore some practical examples.

Reference

Sadeghianfar, Siamak. Kubernetes Ingress vs. OpenShift Route. https://content.cloud.redhat.com/blog/kubernetes-ingress-vs-openshift-route. Accessed 31 Aug. 2023.

Mac Collins. (2023). Practical OpenShift for Developers — OpenShift 4. Udemy. Available at: https://www.udemy.com/course/openshift-for-developers. Accessed 31 Aug. 2023.

--

--

Jimin
Jimin

Written by Jimin

DevOps engineer and tech enthusiast. Sharing tech insights to simplify the complex. Let's connect on LinkedIn! https://www.linkedin.com/in/byun-jimin/

No responses yet