Kubernetes Cluster Installation with kubeadm runtime-Containerd
kubernetes 1.20 sonrası docker deprecated olmuştu, 1.24 ile beraber tamamen kubernetesden çıkarılacak bu da demek oluyor ki kubernetes hardway kurulumu için alternatif bir container runtime kullanmamız gerekiyor burda karşımıza containerd gelmekte.

öncelikle 1 master ve 1 worker node provision edelim. ben google cloud olarak kullanacağım.
aşağıdaki komutları iki node üzerinde de çalıştıracağız.
containerd
sudo su -
apt-get update
apt-get install containerd -y
mkdir -p /etc/containerd
containerd config default /etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd
containerd yi enable ettikten sonra, containerd kubernetes ortamımızda container runtime olacak.


bundan sonra kubernetes componentlerini kuracağız.
kubernetes
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addsudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"sudo apt-get install kubeadm kubelet kubectl -ysudo systemctl enable --now kubelet

disable swap işlemi yapacağız. “swapoff -a” ile yapacağız.
systcl config
sudo modprobe overlay
sudo modprobe br_netfilter
sudo nano /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
sudo sysctl --system
kubeadm (master)
kubeadm bize kubernetes master node yapmak işini görecek ve diğer nodeların worker olması için token verecek. burda init adımından sonra bize vereceği token ı bir yere kaydetmemiz önemli çünkü bir sonraki aşamada kullanıcaz.
sudo kubeadm config images pullsudo kubeadm init --pod-network-cidr=10.100.0.0/16
kubeadm (worker)
burada kaydettiğimiz token ı kullanarak node u cluster a dahil edeceğiz.
bende verdiği şekilde:
kubeadm join 10.154.0.2:6443 --token jcoqll.87yghpm7u6jby8mq \
--discovery-token-ca-cert-hash sha256:ca7de9ff1d48682d8ff5af612711347fec4b5b22f366f8704757ae53ead16bec

kubeconfig
kubernetes confiğinden kubeconfiği çekeceğiz. bu kubectl çalışırken baktığı yer olacak. bunu ayarlamadan kubectl çalıştırırsak herhangi bir kubernetes bulamadım diyecektir. önceki işlemin sonunda görebilirsiniz.
mkdir -p $HOME/.kubesudo cp -f /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config

pod communications
kubernetes clusterımızın tam hazır olabilmesi için bir network operatorü yüklememiz gerekiyor bu farklı nodelarda podların birbirileri ile konuşması için gereklidir, bilinen en meşhurları flannel ve calicodur.
ben burada weave net kuracağım. weave in diğerlerinden farkı encryption sağlaması.
kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

weave yükledikten sonra nodeların ready olduğunu görebilirsiniz.
umarım faydalı bir yazı olmuştur.
h.a.s.