Kubernetes Setup : Linux
Kubernetes Environment Setup
Note : Kubeadm is currently in strong development, hence it is not recommended in production.
- sudo apt-get remove docker docker-engine docker.io
- sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo apt-key fingerprint 0EBFCD88
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update && sudo apt-get install docker-ce=17.03.0~ce-0~ubuntu-xenial
- cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
- systemctl enable docker && systemctl start docker
Kubernetes Installation
- apt-get update && apt-get install -y apt-transport-https
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
- cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
- apt-get update
- apt-get install -y kubelet kubeadm kubectl
- swapoff -a
- kubeadm init --pod-network-cidr=10.244.0.0/16
Below steps will be generated once kubeadm init gets completed
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
##########################################################################
Note : A token will be generated similar to below format, this is used to join multiple VM's to kubernetes cluster ###################################################################
kubeadm join --token 408875.a2c451dee603262b 192.168.244.221:6443 --discovery-token-ca-cert-hash sha256:2dd1a79ba8d695486021ede4b357b1d0a5288a59162231c7c732c08c9179f493
Make Sure with the below command to check all services are Up and Running
- kubectl taint nodes --all node-role.kubernetes.io/master-
- kubectl get pods --all-namespaces
Creating Sample Application
Create an Deployment ( keeps nodes up and running) and a pod ( nothing but a collection of container or a single container)
- kubectl run webserver --image=nginx
- Exposing service
kubectl expose deployment webserver --port 80 --type LoadBalancer --external-ip=192.168.244.221
- curl -I http://externalip
- kubeadm init pod-network-cidr=10.244.0.0/16 --skip-preflight-checks=true
Create Application with YAML (Recommended)
Ref:
https://kubernetes.io/docs/getting-started-guides/ubuntu/
Comments
Post a Comment