Topics Discussed:
- Project and Product
- CaaS vs PaaS
- Web console
- Command line
- Workflow Automation
- Application Deployment and CI/CD
- Cloud Agnostic
- Cluster Installation
- Supported Operating Systems
- Development Environment
- Namespace vs Projects
- Managing Container Images
- Security
- Networking
- Enterprise support
Kubernetes
● Kubernetes is an open source project for container orchestration started by Google.
● Container as a Service.
● kubectl is the command line utility used in kubernetes
● Needs manual installation of kubernetes dashboard
● Managed Services available (EKS, GKE, AKS, etc.)
● Workflow automation has to be manually setup
● Networking is done using CNI plugins
● No default internal container registries.
● Can easily create a dev environment single node cluster with tools like minikube.
● Fully self managed cluster installation is relatively easier than for Openshift.
●Cluster can be installed in almost any OS
● Enterprise support is not available (or only via third party vendors). Have to rely on community bug patchings.
Openshift
● Openshift is a Redhat product based on Kubernetes
● Fully integrated enterprise product
● Platform as a Service (PaaS)
● Manages a full lifecycle for software applications
● oc is the command line utility used in Openshift
● oc is more advanced than kubectl utility
● okd is open source version of Openshift
● Dashboard comes prebuilt
● Most of the cluster operations can be done in the web UI of Openshift
● Easy for developers
● Same features for Openshift Managed Solutions in different cloud providers.
● Workflow automation is available with inbuilt features for different application frameworks.
● Default CICD plugins are available.
● Networking is done using OpenShift SDN
● Routes are used instead of ingress in openshift
Features of Kubernetes
● Multiple traffic division
● Sticky sessions
● Strict security policies are enforced. (Least privilege method)
● Internal registry available in OpenShift
Feature of Openshift
● Image stream (Named reference). Useful in multiple versions of images of an application.
● Projects are used instead of namespaces in Openshift for resource isolation.
● Creating a dev environment is a little difficult.
● Minishift can be used for creating a simple dev environment cluster. From Openshift 4 onwards it’s called CRC (Container ready Clusters).
● Simple clusters still require huge resources like 9GB Memory and 2 vCPUs.
● Redhat provides free development environments in their portal. (Redhat developer sandbox).(Ref: https://www.techbeatly.com/2021/09/introduction-to-developer-sandbox-for-red-hat-openshift.html)
● Openshift installer is very easy and helpful
2 Methods:-
● IPI (Installer Provisioned Infrastructure) Method
● UPI (User Provisioned Infrastructure)
Q & A
1. Difference between deployment and deployment config objects in Openshift?
Trigger hooks can be set in deploymentconfig. Not in deployment object
2. How is the Openshift price overview ?
● Redhat openshift requires a subscription. Trial licenses are available for 60 days upon formal requests.
● okd is free for use
3. How ingress controllers are configured in Openshift
Ingress controller (Routes) is inbuilt using HAProxy.
4. Does okd provides dashboard?
Almost all features are available in okd.
5. How can we shift workloads from the kubernetes cluster to the openshift cluster?
Konveyor project can be used to do openshift migration
6. Operator related question
7. Can we use any service mesh in Openshift rather than Kiali?
References
Kubernetes vs OpenShift – 15 Facts You Should Know: