Ortamımızda 3 adet linux/ubuntu sunucu mevcut. Bir tanesi master, diğer ikisi worker node olarak tanımlanıp kurulumlar yapılacaktır.
Aksi durum belirtilene kadar belirtilen tüm adımlar 3 sunucu içinde uygulanması gerekmektedir.
Containerd konfigurasyonunu oluşturalım,
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF
Gerekli olan modülleri yükleyelim,
sudo modprobe overlay sudo modprobe br_netfilter
Kubernetes networking için gerkeli olan network konfigurasyonlarını uygulayalım,
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
Uygulanan konfigurasyonları devreye alalım,
sudo sysctl --system
Containerd kurulumunu gerçekleştirelim,
sudo apt-get update && sudo apt-get install -y containerd
Containerd için default konfigurasyon dizinini oluşturalım,
sudo mkdir -p /etc/containerd
Containerd varsayılan konfigurasyonlarını oluşturup, belirtilen konfig dizinine konfigurasyonu kaydedelim,
sudo containerd config default | sudo tee /etc/containerd/config.toml
Mevcut konfig dosyasını oluşturmuş olduğumuz konfigurasyon alanına kayıt ettiğimizden emin olduktan sonra containerd servisini yeniden başlatalım,
sudo systemctl restart containerd
Servisin çalıştığından emin olalım,
sudo systemctl status containerd
Swapı devre dışı bırakalım,
sudo swapoff -a
Reboot sonrası her açılışta swap devreye girmemesi için fstab üzerinden de swapı devre dışı bırakalım,
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Gerekli olan paketlerin kurulumlarını gerçekleştirelim,
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
GPG Keyimizi indirelim ve keylerimiz arasına ekleyelim,
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Kubernetes repository listimizi oluşturalım,
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF
Paket listemizi güncelleyelim,
sudo apt-get update
ve Kubernetes paketlerimizin kurulumuna başlayalım,
sudo apt-get install -y kubelet=1.22.0-00 kubeadm=1.22.0-00 kubectl=1.22.0-00
kubelet, kubeadm ve kubctl paketlerimizin auto update almalarını kapatalım,
sudo apt-mark hold kubelet kubeadm kubectl
Cluster Kurulumu
kubeadm’yi kullanarak control-plane(master) Kubernetes cluster başlatın (Not: Bu yalnızca Control Plane üzerinde gerçekleştirilir):
sudo kubeadm init --pod-network-cidr 192.168.0.0/16 --kubernetes-version 1.22.0
Kubectl için erişimi yapılandıralım,
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
ve Test girişimizi aşağıdaki komut ile gerçekleştirelim,
kubectl get nodes
Calico Networking eklentisi kurulumu
Bu eklenti sadece control-plane (master) üzerinde gerçekleştirilir,
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Control plane durumları kontrol edilir,
kubectl get nodes
Worker Node’ların Cluster’a dahil edilmesi
Kubernetes Control Plane kurulumu tamamlandığında aşağıdaki şekilde bir çıktı ile karşılaşacaksınız.
Your Kubernetes control-plane has initialized successfully! To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 172.22.1x.2xx:6443 --token d9zilv.ncwdrkXXXXXXX \ --discovery-token-ca-cert-hash sha256:6474f70d4e774fbXXXXXXXXXXXXXX70e4c744aacefe433
Son 3 satırda belirtilen kubeadm join alanını kopyalayarak Worker nodelarımıza erişim sağlayıp uygulayabiliriz. Eğer bir nedenden dolayı burayı kaçırmışsakta, aşağıdaki komut ile mevcut erişim için gerekli olan tokeni görüntüleyebiliriz,
kubeadm token create --print-join-command
İki worker nodumuzda da ilgili çıktıyı sudo komutu ile uygulayalım,
sudo kubeadm join ...
kubectl get nodes komutu ile clusterimiz ve nodelarımızın durumunu görüntüleyebiliriz, tüm nodlarımızın hazır hale gelmesi biraz zaman alabilir, notready olarak gördüğünüz nodelar için endişenlenmeyip biraz zaman geçtikten sonra tekrardan kontrol edip, herşeyin yolunda olduğunu gözlemleyebiliriz,