Skip to content

Instantly share code, notes, and snippets.

@lotusirous
Created December 9, 2018 01:12
Show Gist options
  • Select an option

  • Save lotusirous/a080f2b4a64d7be8cb55e82ceb64be72 to your computer and use it in GitHub Desktop.

Select an option

Save lotusirous/a080f2b4a64d7be8cb55e82ceb64be72 to your computer and use it in GitHub Desktop.
Install minikube with coredns plugin

Install local kubernetes cluster with minikube

#!/bin/bash

JQ_VERSION="1.6"
GOSS_VERSION="v0.3.6"

function download {
    # $1 is url, # $2 is name
    echo "Download $1 ..."
    curl -fSL $2 -o $1
    sudo install $1 /usr/bin/$1
    # clean up
    rm $1
}

download jq https://github.com/stedolan/jq/releases/download/jq-${JQ_VERSION}/jq-linux64
download goss https://github.com/aelsabbahy/goss/releases/download/${GOSS_VERSION}/goss-linux-amd64
download dgoss https://github.com/aelsabbahy/goss/releases/download/${GOSS_VERSION}/dgoss
# latest minikube
download minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
download kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl


# adjust kernel param
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system



export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
mkdir -p $HOME/.kube
mkdir -p $HOME/.minikube
touch $HOME/.kube/config

export KUBECONFIG=$HOME/.kube/config
sudo -E minikube start --vm-driver=none

# this for loop waits until kubectl can access the api server that Minikube has created
for i in {1..150}; do # timeout for 5 minutes
   kubectl get po &> /dev/null
   if [ $? -ne 1 ]; then
      break
  fi
  sleep 2
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment