Get a highly available Kubernetes Cluster in minutes with Oracle Kubernetes Engine

The procedure is for creating a Highly Available Multi-Master Kubernetes Cluster spanning multiple Availability Domains within a region of Oracle Cloud Infrastructure. The procedure is written keeping the console in mind, for information on API, please use this link.

Architecture

Access Console

Go to https://console.us-ashburn-1.oraclecloud.com or depending on the where your primary tenancy
+-------------------------------+----------------+------------+
| Region Location | Region Name | Region Key |
+-------------------------------+----------------+------------+
| Phoenix, AZ metropolitan area | us-phoenix-1 | PHX |
| Ashburn, VA | us-ashburn-1 | IAD |
| Frankfurt, Germany | eu-frankfurt-1 | FRA |
| London, United Kingdom | uk-london-1 | LHR |
+-------------------------------+----------------+------------+

Create a Compartment

For easy management and hygiene. To Learn more about compartments go to link

1. Create a separate compartment for your OKE Cluster
2. Add appropriate descriptions
3. Copy the OCID

Create a User

A special user who has access to only Oracle Kubernetes Engine and allied resources

1. Copy the User OCID 
2. Add appropriate descriptions for easy identification

Create a group

1. Abstract access and entitlement to resources as a group 

Add user to group

Add Policies to govern access and entitlement

1. Go to <ROOT> compartment and add this policy statement
Allow service OKE to manage all-resources in tenancy
2. Go to <YOUR-COMPARTMENT-NAME> and add this policy statement 
Allow group <YOUR-GROUP-NAME> to manage cluster-family in compartment <YOUR-COMPARTMENT-NAME> 

Cluster Creation Menu

Select Quick Create

1. Quick create automatically creates the necessary networking resources and security lists needed for spinning up the Kubernetes Cluster
2. You could also customize the subnets, CIDR Blocks and Security rules and create everything from scratch. 

Node Pools are your worker nodes

1. You could choose to add more node pools of different shapes in other subnets or scale the existing node pool. One Node pool = 1 VM Shape 
2. Add SSH Keys so that you can gain SSH access to the Worker Nodes.

Once the cluster is created you should be able to see this in the status window

!!! The master nodes are safely behind a HA-Load Balancer and are obfuscated from the user and only kubectl access is allowed to the master. !!!

Access Kubeconfig

Run the command as indicated in the Pop up and voila you have your kubeconfig ready !!

If you don’t have the OCI CLI installed in the VM or Machine that you use to access kubectl, then you will have to install the OCI CLI. Here’s the link that will help you configure the OCI-CLI in a jiffy