Demo: OpenShift in the edge with AWS Local Zones
This is the reference for a demo of deploying an OpenShift cluster on the edge of AWS Cloud with Local Zones. Summary of the Epic SPLAT-365.
Table Of Contents:
- Epic Overview
 - Part 1: AWS Local Zones overview
 - Part 2: Day-2 - Extend OpenShift compute nodes to Local Zones
 - Part 3: Day-0 - Install OpenShift cluster in existing VPC with Local Zones
 - Part 4: Day-0 demo - Installing OpenShift
 - Next Steps
 - References
 
Epic overview and goals
- Understand how we can use Local Zones in OCP
 - Understand the benefits
 - Provide the steps
 - Create on the Product documentation how to install the OCP cluster in existing VPC with Local Zone subnets
 - Eventually public a blog in the Hybrid Cloud with the results
 
Part 1: AWS Local Zones overview
- Product landing page
 - Limitations
- Resources are Limited and more expensive
 - Current limitation
- EBS type should be gp2
 - Instance Type
 - NLB is not supported
 - Nat Gateway is not supported
 
 
 - Example Architecture
 - Local Zones are designed specially to compute nodes
- Using existing VPC only
 - Current options to install OCP:
- Day-2
 - Day-0
 
 
 
Part 2: Day-2 - Extend OpenShift compute nodes to Local Zones
- 
Summary of tasks:
 - 
Steps to use compute nodes in Local Zones (Day-2):
- Opt in the Availability Zone Group
 - Create the subnet
 - Associate the Route Table
 - Choose the correct gateway (IGW or NatGW*)
 - Create the MachineSet for nodes in the Local Zone
- Creating the 
edgelabel - Set the node as unscheduled
 
 - Creating the 
 - Create the machine
 
 - Benchmark results review
 
Part 3: Day-0 - Install OpenShift cluster in existing VPC with Local Zones
- 
Summary of tasks:
 - 
Steps to install a cluster in the existing network with compute nodes in Local Zones (Day-0)
- Create VPC and resources
 - Create the Local Zone subnet
- tag as unmanaged
 
 - Create the install-config.yaml specifying the subnets to install a cluster
 - Create the MachineSet manifest on installer install dir
- Creating the 
edgelabel - Set the node as unscheduled
 
 - Creating the 
 - Create a cluster
 
 
Part 4: Day-0 demo - Installing OpenShift
- Day-0 installation
oc aws-zoneplugin used automates the install steps- play demo
 
 - AWS Console:
- Zone Groups configurations
 - VPC and network resources
 - Local Zone subnet
- Subnet tag unmanaged
 - public route table
 
 - Compute resources
 
 
Demo script: quick install using plugin
# install the plugin
curl -s https://raw.githubusercontent.com/mtulio/mtulio.labs/article-ocp-aws-lz-plugin/labs/oc-plugins/oc-aws_zone -o ${HOME}/bin/oc-aws_zone
chmod u+x ${HOME}/bin/oc-aws_zone
# read the help
oc aws-zone
# create a cluster
CLUSTER_NAME=lzdemo \
    VERSION=4.11.2 \
    CLUSTER_REGION=us-east-1 \
    ZONE_GROUP_NAME=us-east-1-nyc-1a \
    VPC_CIDR='10.0.0.0/16' \
    ZONE_CIDR='10.0.128.0/20' \
    BASE_DOMAIN='devcluster.openshift.com' \
    INSTANCE_TYPE=c5d.2xlarge \
    PULL_SECRET_FILE=${HOME}/.openshift/pull-secret-latest.json \
    SSH_PUB_KEY_FILE=${HOME}/.ssh/id_rsa.pub \
    oc aws-zone create-all
export KUBECONFIG=${PWD}/auth/kubeconfig
# review the installation
oc get clusteroperators
# check the machine
oc get machines -n openshift-machine-api
# checke the edge node
oc get nodes -l node-role.kubernetes.io/edge=''
# destroy the cluster
oc aws-zone destroy-all
Next steps
- Public the steps of Installing a cluster in existing VPC with Local Zone subnets in the Product Documentation
 - Installer supports it natively:
 - Current issues:
- Ingress subnet discovery