this was part of open shift commons events, fringe to the Kubecon 2020 Europe/Amsterdam (virtual) . along with my good online friend and mentor Josef we presented our experience for installing OKD in Azure and VMware.
3. ● Download the oc command line tool from:
https://github.com/openshift/okd/releases
● Select your OKD version from:
https://origin-release.apps.ci.l2s4.p1.openshiftapps.com/
(yes … the link is ugly :-), click on a version, a new page opens, copy command)
● Execute command (example):
oc adm release extract --tools quay.io/openshift/okd:4.5.0-0.okd-2020-08-12-020541
● Untargz openshift-installer-<...>.tar.gz
In the beginning there is the “oc” client cli tool
5. caching images close to your cluster
oc adm release mirror
https://docs.okd.io/latest/installing/install_config/installing-restricted-networks-preparations.html
7. Comparison of Paradigms
Full Stack Automation Pre-existing Infrastructure
Build Network Installer User
Setup Load Balancers Installer User
Configure DNS Installer User
Hardware/VM Provisioning Installer User
OS Installation Installer User
Generate Ignition Configs Installer Installer
OS Support Installer: Fedora CoreOS User: FOCS CoreOS
talks of CENTOS 8 ?!
Node Provisioning / Autoscaling Yes Only for providers with OpenShift
Machine API support
8. • Simple TUI
• Takes cloud credentials as inputs
• Creates all cloud resources for you
• Creates bootstrap host
• Bootstrap host creates cluster control plane
• Control plane then creates initial workers (nodes)
• Terminate bootstrap host
Fully Automated Installation
9. OKD Bootstrap Process: Step by Step
Bootstrapping process step by step:
1. Bootstrap machine boots and starts hosting the remote resources required for master machines to boot. Runs one instance of etcd
2. Master machines fetch the remote resources from the bootstrap machine and finish booting.
3. Master machines use the bootstrap node to scale the etcd cluster to 3 instances.
4. The Etcd operator scales itself down off the bootstrap node, then scales back up to 3; all on the Masters
5. Bootstrap node starts a temporary Kubernetes control plane using the newly-created etcd cluster.
6. Temporary control plane schedules the production control plane to the master machines.
7. Temporary control plane shuts down, yielding to the production control plane.
8. Bootstrap node injects OpenShift-specific components into the newly formed control plane.
9. Installer then tears down the bootstrap node or if user-provisioned, this needs to be performed by the administrator.
10. Worker machines fetch remote resources from masters and finish booting.
Installer
Bootstrap Node
Creates
Master Node
etcd
Master Node
etcd
Master Node
etcd Worker Node
kubelet
Worker Node
kubelet
Worker Node
kubelet
10. How everything deployed comes under
management
Masters (Special)
● Full Stack Automated: Installer provisions minimal viable masters
● User Provisioned: User/Administrator provisions minimal viable masters
● Machine API adopts existing masters post-provision
● Each master is a standalone Machine object
● Termination protection (avoid self-destruction)
Workers
● Each Machine Pool corresponds to MachineSet
● Optionally autoscale (min,max) and health check (replace if not ready > X minutes)
Multi-AZ
● MachineSets scoped to single AZ
● Installer stripes N machine sets across AZs by default
● Post-install best effort balance via cluster autoscaler
14. • Just regular pods
• Control loop that ensures desired state
• Makes use of Custom Resource Definitions to extend
Kubernetes API
Kubernetes Operators
15. Extend the Kubernetes API to create new objects
Custom Resource (Definitions)
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: cars.openshift.pub
spec:
group: openshift.pub
...
names:
kind: Car
listKind: CarList
plural: cars
singular: car
scope: Namespaced
subresources:
status: {}
version: v1
apiVersion: openshift.pub/v1
kind: Car
metadata:
name: bmw
spec:
date_of_manufacturing: "2014-07-01T00:00:00Z"
engine: N57D30
16. ONE OPERATOR TO RULE THEM ALL
CLUSTER VERSION
OPERATOR
Release Artefact
Release
Verification
Pipeline
MACHINE CONFIG
OPERATOR
CLUSTER
OPERATORS
DNS, Authentification,
Console, Ingress,
Network, Registry,
Monitoring, Logging, etc.
OpenShift Nodes
Cluster
Update
Infra
Update
17.
18.
19. Resources
OKD.io
https://okd.io
OKD-WG
https://groups.google.com/forum/#!forum/okd-wg
Openshift Commons Events Calendar
https://commons.openshift.org/events.html
Openshift/OKD helper node
https://github.com/RedHatOfficial/ocp4-helpernode
https://www.youtube.com/watch?v=wZYx4_xBSUQ
Learn Openshift/OKD
https://learn.openshift.com/
https://www.katacoda.com/
Openshift blog
https://www.openshift.com/blog
Slack channels for user and developers
https://kubernetes.slack.com/messages/openshift-dev/
Josef’s Previous Azure Briefing:
https://www.openshift.com/blog/okd-wg-briefing-deploying-okd4-on-azure-with-josef-meier-rohde-and-schwarz
Check out: https://openshift.tv/
20. Value of OpenShift
Red Hat Enterprise Linux | RHEL CoreOS
Kubernetes
Automated Operations
Cluster Services
Monitoring, Logging,
Registry, Router, Telemetry
Developer Services
Dev Tools, CI/CD,
Automated Builds, IDE
Application Services
Service Mesh, Serverless,
Middleware/Runtimes, ISVs
CaaS PaaSBest IT Ops Experience Best Developer ExperienceFaaS
24. dn.dev/opsmaster1
Value of OpenShift
Red Hat Enterprise Linux | RHEL CoreOS
Kubernetes
Automated Operations
Cluster Services
Monitoring, Logging,
Registry, Router, Telemetry
Developer Services
Dev Tools, CI/CD,
Automated Builds, IDE
Application Services
Service Mesh, Serverless,
Middleware/Runtimes, ISVs
CaaS PaaSBest IT Ops Experience Best Developer ExperienceFaaS