[Kubernetes] Installation

1 minute read


Setup Kubectl

brew install kubernetes-cli

# -----
# linux
# -----
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# validation
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# or when sudo is unavailable
# chmod +x kubectl
# mkdir -p ~/.local/bin
# mv ./kubectl ~/.local/bin/kubectl

# test
kubectl version --client

Setup MiniKube

#------
# macOS
#------
brew install minikube

# start docker
orb start

minikube start

# test
kubectl get po -A
# NAMESPACE     NAME                               READY   STATUS    RESTARTS        AGE
# kube-system   coredns-66bc5c9577-j6wvh           1/1     Running   0               2m46s
# kube-system   etcd-minikube                      1/1     Running   0               2m52s
# kube-system   kube-apiserver-minikube            1/1     Running   0               2m53s
# kube-system   kube-controller-manager-minikube   1/1     Running   0               2m52s
# kube-system   kube-proxy-7r2js                   1/1     Running   0               2m46s
# kube-system   kube-scheduler-minikube            1/1     Running   0               2m52s
# kube-system   storage-provisioner                1/1     Running   1 (2m16s ago)   2m51s

# status
minikube status
# minikube
# type: Control Plane
# host: Running
# kubelet: Running
# apiserver: Running
# kubeconfig: Configured

# -----
# linux
# -----

# check virtualization
grep -E --color 'vmx|svm' /proc/cpuinfo

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

minikube start

# test
kubectl get po -A

Deploy applications (Test)

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080

kubectl get services hello-minikube
minikube service hello-minikube

Managing Cluster

minikube pause
minikube unpause

minikube stop

# Change the default memory limit (requires a restart)
minikube config set memory 9001

# Browse the catalog of easily installed Kubernetes services
minikube addons list

# Delete all of the minikube clusters
minikube delete --all

Reference