Kubeadm ile Kubernetes Cluster Kurulumu

Merhaba bu yazımda sizlere Kubeadm ile 2 node’lu bir kubernetes cluster kurulumunu adım adım anlatacağım. Bu iki node içinde Ubuntu Server 20.04 LTS OS kullanacağım. Lafı çok uzatmadan kurulum adımlarına geçebiliriz.

İlk yapmamız gereken Linux’daki swap alanları kapatmak olacak. Kubernetes swap kapatılmasını mecburi kılıyor. Bir kaç parametreyle swap alanını ignore da edebiliriz ama bu tavsiye edilen bir durum değildir. Cluster’a dahil edilecek bütün nodelar için swap alanlarını bu komutlarla kapatabiliriz.

swapoff -a
sudo rm /swap.img
swapon --show

1- Clusterımız için gerekli network mimarisini kurmamızda Iptables’a ayar yapmamız gerekiyor. Bu ayarları Kubernetes.io‘dan inceleyebilirsiniz. (Her iki node içinde bu ayarlar gerekli.)

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

2- Container altyapısı için containerd’yi kuracağız.

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter
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
sysctl --system
apt-get update
apt-get upgrade -y
apt-get install containerd -y
mkdir -p /etc/containerd
containerd config default | tee /etc/containerd/config.toml
systemctl restart containerd

3- Gerekli Iptables ayarlarını yaptık ve Container altyapısı için containerd kurulumunu tamamladık. Artık k8s cluster kurulumuna başlayabiliriz. Şimdi Kubeadm kurulumu ile devam edelim.

apt-get update
apt-get install -y apt-transport-https ca-certificates curl
curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

4- Bu adımda artık cluster’ı oluşturacağız. Bu adımdaki komutlar master node’da çalıştırılmalıdır. Worker node için kullanılmamalıdır.

kubeadm config images pull

Kubeadm, clusterımız için gerekli bütün imajları indirdi. Artık son adımdayız clusterımızı ayağa kaldırabiliriz.

kubeadm init --pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=192.168.10.40 --control-plane-endpoint=192.168.10.40

–pod-network-cidr= Podların kullanacağı subnet.

–apiserver-advertise-address= (Master Node IP’si. Opsiyoneldir. Makinanızda birden çok network kart’ı var ise K8S’in hangi network kartından manage edecekseniz onun ip’sini yazmanız gerekmektedir.)

–control-plane-endpoint= (Master Node IP’si. Opsiyoneldir. )

Yukarıdaki adımları uygulayarak bu sonuçlara ulaşmalısınız. Clusterımızı oluşturduk. Şimdi cluster’ı yönetbilmemiz için kullanıcı config ayarlarını yapmamız gerekiyor.

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes

Komutu ile cluster’daki node’ları kontrol edebilirsiniz.

5- Worker Node’u artık clustera dahil edebiliriz.

Master node’un bize verdiği worker init komutunu worker node’a girdiğimizde node’u cluster’a dahil etmiş oluyoruz.

6- Clusterı oluşturduk, node’ları dahil ettik. Son olarak kubernetes de en çok kullanılan network plugin’i olan Calico’yu kurarak cluster’ı tamamlayacağız.

curl https://docs.projectcalico.org/manifests/calico-typha.yaml -o calico.yaml
kubectl apply -f calico.yaml

Calico gerekli pod’ları oluşturdaktan sonra node status leri Ready’e dönecektir ve böylelikle cluster’ımız hazır.

Ellerimize sağlık. 🙂

Kaynak döküman: Installing Kubernetes Cluster with deployment tools

Soru ve görüşlerinizi yazabilrsiniz.

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir