Kubernetes remote cluster setup

2/22/2018

How I can setup and securely access a kubernetes cluster on EC2 instance from my laptop? I want it to be a single-node cluster, like running only one instance. Have tried run minikube at EC2 instance, but can't config laptop to connect to it. So, in the result, I want to run like 10 services/pods in EC2 instance and just debug run on my dev laptop.

Thanks!

-- Tom White
amazon-ec2
kubernetes

1 Answer

2/22/2018

You can use KOPS (Kubernetes Ops) to Accomplish this. Its a really handy tool. There's a whole section for configuring a cluster on AWS. I use it on a couple of projects and id really recommend it. Its an easy to understand setup and straight forward.

After the cluster is up you can use kubectl proxy to proxy locally and interact with the cluster. Or use kubectl with config files to set up services and pods.

It does not create a new instance per service or pod it creates a pod on the node(s) that is already existing on the cluster.

In your case you could have a single master and a single node in whatever size that suits your needs.t.2 micro or otherwise

A command to accomplish that would look like:

 kops create cluster \
  --cloud aws \
  --state $KOPS_STATE_STORE \
  --node-count $NODE_COUNT \
  --zones $ZONES \
  --master-zones $MASTER_ZONES \
  --node-size $NODE_SIZE \
  --master-size $MASTER_SIZE \
  -v $V_LOG_LEVEL \
  --ssh-public-key $SSH_KEY_PATH \      
  --name=$CLUSTER_NAME

Where the $NODE_COUNT would be 1 thus having a single Node or EC2 Instance and another instance as the master

To connect to it locally you can also deploy the kubernetes dashboard on your cluster.

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

To access Dashboard from your local workstation you must create a secure channel to your Kubernetes cluster. Run the following command:

 kubectl proxy

Now you can access the Dashboard at:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

-- iamcaleberic
Source: StackOverflow