Setup a SandBox/Development K8s Environment with KOps and Ubuntu 18.04 AMD64 Bionic

AWS | KOps | Development | Kubernetes | High Availability

Step 1. Identify the AMI

aws ec2 describe-images --region us-east-1 --output table --owners 099720109477 --query "sort_by(Images, &CreationDate)[*].[CreationDate,Name,ImageId]" --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-*"
ami-007e276c37b5ff2d7

Step 2. Create a Route53 Domain for the Cluster

k8s-training-kops-state

Step 4. Build your cluster configuration as desired.

Understanding the Keys

Understanding the Configuration

kops create cluster --node-count 3 --zones us-west-2a,us-west-2b,us-west-2c --master-zones us-west-2a,us-west-2b,us-west-2c --node-size t2.medium --master-size t2.medium --topology public --networking weave --name dev.training.k8s.local --image ami-007e276c37b5ff2d7 --dns public --dns-zone Z09023161C3R5R5FCLII --state s3://k8s-training-kops-state
Create - KOps CLI command used to create the Kubernetes Cluster
--node-count - Identifies the number of nodes to start with when the cluster is created.
--zones - Identifies the number of availability zones to associate the nodes to.
--master-zones - Identifies the number of availability zones to assocate the master nodes to.
--node-size - Identifies the Instance Type for the nodes.
--master-size - Identifies the Instance Type for the masters.
--topology - Identifies weather or not to use a private or public topology.
--networking - Identifies the CNI used for the cluster.
--name - Name given to the cluster. If k8s.local is used then a local DNS is utilize.
--image The AMI used for both the master and the nodes when the servers are provisioned.
--dns-zone - Identfies the hosted zone of the domain to be utilize for the API endpoint of the cluster.
--dns - Identifies the type of endpoints which should be utilize private or public are the options
--state - Identifies the S3 Bucket that the state should go to and be used for.

Step 5. Complete and Apply the Cluster

kops update cluster --name dev.training.k8s.local --yes --state s3://<name of S3 bucket>

Step 6. Wait until servers are provisioned

kops validate cluster --wait 10m --state s3://<name of s3 bucket>
Shows AWS ec2 with 3 Masters and 3 Nodes for HA Cluster

Enterprise Solution Architect | Certified Kubernetes Administrator βš“ | SAFe SPC | LeSS Practioner | AWS Solutions Architect | Dev*Ops/GitOps Engineer πŸ”₯

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store