Setting up Kubernetes on Oracle Cloud Infrastructure – Classic

if you are looking for Oracle Kubernetes Engine – click here

Create Kubernetes Cluster

Access My Services page on Oracle Cloud , view Dashboard , Click on Compute Classic ( formerly called just Compute part of Oracle Infrastructure as a Service) , from there open service console

Create Security List

Select Network Tab, Security List and on the extreme right , click on create security list

Create a security list by name kube_cluster_seclist .

Create HTTP Security Rule by name kube_cluster_http_secrule and add  kube_cluster_seclist

Create SSH Security Rule by name kube_cluster_ssh_secrule and add  kube_cluster_seclist

Create SSH Key or Re-use SSH key if it has been already created. you can use Putty Key Gen to create a SSH Private and Public Key

Create Kubernetes Master Instance – Ubuntu 16.04 LTS Image

You can select the image from Market place – this will download the image

if the image has already been downloaded in Private image you can use the same

You can select “Customize” Option , rather than Quick Configure Option

Allocate CPUs, Name the instance as Master_* , Allocate SSH Keys

Select Security List

 Create Master Image

Similarly Create Node 1 and Node 2 Ubuntu 16.04 images

Ensure that Master , Node 1 and Node 2 instances have been created with Public IP and are Running fine

Setting up Bare Metal Instances 

if you wish to create Bare Metal Ubuntu Instances , please refer this link

How to Create Oracle Bare metal Compute Instance [Oracle Cloud Infrastructure]

Install Kubernetes and setup using Kubernetes Admin ( Kubeadm )

SSH to Master Machine Ubuntu 16.04 as user ubuntu , using Putty

Note : I had challenges connecting SSH from my Linux Machine , Used Windows Putty it connected like a cake, in Putty you would need to Rlogin set username as ubuntu and go to SSH/Auth/ and select privatekey.ppk

Update Ubuntu 16.04

sudo su

sudo apt-get update

# sudo apt-get install -y docker.io socat apt-transport-https
# curl -s -L \
  https://storage.googleapis.com/kubeadm/kubernetes-xenial-preview-bundle.txz | tar xJv
# sudo dpkg -i kubernetes-xenial-preview-bundle/*.deb

Refer installation Link : https://lukemarsden.github.io/docs/getting-started-guides/kubeadm/ 

Check if Kubernetes is Running

#Kubeadm

Initialize Kubernetes Master

sudo kubeadm init --use-kubernetes-version v1.4.0-beta.11
<master/tokens> generated token: "f0c861.753c5057ecde4c"
<master/pki> created keys and certificates in "/etc/kubernetes/pki"
<util/kubeconfig> created "/etc/kubernetes/kubelet.conf"
<util/kubeconfig> created "/etc/kubernetes/admin.conf"
<master/apiclient> created API client configuration
<master/apiclient> created API client, waiting for the control plane to become ready
<master/apiclient> all control plane components are healthy after 61.346626 seconds
<master/apiclient> waiting for at least one node to register and become ready
<master/apiclient> first node is ready after 4.506807 seconds
<master/discovery> created essential addon: kube-discovery
<master/addons> created essential addon: kube-proxy
<master/addons> created essential addon: kube-dns

Kubernetes master initialised successfully!

You can connect any number of nodes by running:

kubeadm join --token <token> <master-ip>