name: inverse class: left, middle, bg layout: true --- layout: true class: top, left, bg --- template: inverse class: center, middle # Choose the right OpenShift size Jan Šafránek, jsafrane@redhat.com
jsafrane --- # Choose the right OpenShift size * OpenShift form factors * Highly Available * Single Node * Hypershift * Microshift --- # OpenShift -- * Distribution of Kubernetes. -- * Managed by operators. -- * API. -- * Form factors: * Highly available. * Single-node. * Selected during installation. --- # Highly Avialable OpenShift * 3 control plane nodes. * Not schedulable by default. * Tolerates loss of 1 control plane node. * Upgrades / reconfigurations without disruption. --- # Highly Avialable OpenShift
--- # Highly Available OpenShift ## Control plane nodes * [Bare minimum](https://docs.openshift.com/container-platform/4.15/scalability_and_performance/recommended-performance-scale-practices/recommended-control-plane-practices.html#master-node-sizing_recommended-control-plane-practices): * 4 vCPU cores. * 16 GB of RAM. * [Tested maximum](https://docs.openshift.com/container-platform/4.15/scalability_and_performance/recommended-performance-scale-practices/recommended-control-plane-practices.html#master-node-sizing_recommended-control-plane-practices): * 16 vCPU cores. * 96 GB of RAM. * Fast storage for etcd. * Maximum: * 2,000 Nodes. * 10,000 Namespaces. * 150,000 Pods. * 10,000 Services. --- # Highly Available OpenShift * Control plane node ``` sh-5.1# free -h total used free shared buff/cache available Mem: 15Gi 6.0Gi 658Mi 73Mi 9.1Gi 9.3Gi ``` * Worker (without Prometheus :-)) ``` total used free shared buff/cache available Mem: 30Gi 1.9Gi 24Gi 61Mi 5.4Gi 29Gi ``` --- # Single-node OpenShift (SNO) * 1 node. * *If it breaks, it breaks.* * Upgrades / reconfiguration can have downtime. * More workers can be added. * Use case: * Edge devices with full OpenShift API. * Small development cluster. --- # Single-node OpenShift (SNO) * Official requirements: * 8 vCPU cores. * 16 GB of RAM. * 120 GB. ``` sh-5.1# free -h total used free shared buff/cache available Mem: 30Gi 10Gi 813Mi 100Mi 19Gi 20Gi sh-5.1# uptime [...] load average: 0.61, 0.52, 0.34 ``` --- # Single-node OpenShift (SNO)
--- # Single-node OpenShift (SNO) Helpful features: * Real-time kernel. * CPU isolation. * NUMA-aware. * local-storage-operator. * LVMS operator. --- # OpenShift installation tools * [`openshift-install`](https://github.com/openshift/installer/). * Paywall: [`assisted-installer`](https://github.com/openshift/assisted-installer). * Paywall: Advanced Cluster Management. * *HyperShift*. --- template: inverse class: center, middle # HyperShift --- # [HyperShift](https://hypershift-docs.netlify.app/) * "OpenShift within OpenShift". --- # [HyperShift](https://hypershift-docs.netlify.app/)
--- # [HyperShift](https://hypershift-docs.netlify.app/)
--- # [HyperShift](https://hypershift-docs.netlify.app/)
--- # [HyperShift](https://hypershift-docs.netlify.app/) * *Management cluster*: a cluster that hosts other clusters. * *Hosted / guest cluster*. * With *hosted control plane* in the *management cluster*. * Highly Availabile on request. * Doesn't have all OpenShift APIs! --- template: inverse class: center, middle # MicroShift --- # MicroShift * Minimal distribution of Kubernetes. * No OpenShift APIs! * RPM & yum & systemd services ♥. * Use case: very small edge devices. * 2 GB memory. * 2 vCPUs. ``` $ free -h total used free shared buff/cache available Mem: 2.7Gi 1.3Gi 130Mi 21Mi 1.5Gi 1.3Gi ``` --- # Summary * Use Highly Available OpenShift if you can. * Consider running smaller clusters with HyperShift instead of large clusters. * On single node: * If you need OpenShift APIs & operators & console: Single Node OpenShift. * If you need as small as possible: MicroShift. ---