Kubernetes Cluster Setup from Scratch
Setting up Multi-Node Cluster Using Kubeadm:
Run on master and all worker nodes
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
Install docker
apt-get install -y kubelet kubeadm kubectl kubernetes-cni
On Master
kubeadm init –pod-network-cidr=10.244.0.0/16 -v=9
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml
On worker
kubeadm join 172.31.0.74:6443 –token 0g7s1s.syanoiavie6mvv4v \
–discovery-token-ca-cert-hash sha256:f17daffb90bee41886a42e77f9db91452716e85165b6b4e7eec3f381c71532a8
Single Node Cluster using KIND:
To setup single node cluster for practice purpose or for a small applications, you may prefer to install kind cluster (Kubernetes INside Docker).
Create VM on AWS/Azure with Ubuntu-18.04 (minimum 2-cores and 4GB RAM)
Refer: . Please drop message for the link
Commands to Install Docker on Ubuntu
[Ref: https://docs.docker.com/engine/install/ubuntu/]
$ apt-get update
$ sudo apt-get install ca-certificates curl gnupg lsb-release
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
$ echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Verify if docker is installed
$ sudo docker run hello-world
Install kind cluster
1. $ curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
After docker installation, run below commands to install kind cluster —
2. $ chmod +x ./kind
3. $ sudo mv ./kind /usr/local/bin/
4. $ cat << EOF > config.yaml
# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
– role: control-plane
– role: worker
– role: worker
EOF
5. kind create cluster –name=demo –config config.yaml
Install kubectl
curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl”
chmod +x kubectl
sudo mv kubectl /usr/local/bin/