Hikayemizin Başlangıcı: Kubernetes Nedir?
Bir zamanlar büyük yazılım projelerinde, mikro hizmetler (microservices) adı verilen yapıların hızla popülerleştiğini duymuşsunuzdur. Ancak, bu tür projelerle birlikte, çok sayıda uygulama ve konteynerin yönetilmesi gerektiğinde işler biraz karmaşıklaşabilir. İşte tam burada Kubernetes devreye giriyor!
Kubernetes, her türlü uygulamayı ve hizmeti kolayca yönetebilmeniz için geliştirilmiş güçlü bir açık kaynaklı konteyner orkestrasyon sistemidir. Bu sistem sayesinde, konteynerlerinizi daha verimli bir şekilde dağıtabilir, ölçeklendirebilir ve izleyebilirsiniz. Ama, nasıl mı? Gelin birlikte öğrenelim.
Kubernetes Kurulumunun Temelleri
Linux üzerinde Kubernetes kurulumu yapmadan önce, bazı temel adımları tamamlamamız gerekiyor. Hazır mısınız? O zaman başlayalım!
Adım 1: Gerekli Paketlerin Kurulumu
İlk iş olarak, Kubernetes’in çalışabilmesi için gerekli olan bazı araçları sistemimize kurmalıyız. Docker, kubeadm, kubelet ve kubectl gibi araçlar buna dahil.
Bu araçları yüklemek için şu komutları kullanacağız:
kopyalasudo apt updatesudo apt install -y apt-transport-https ca-certificates curlcurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.listsudo apt updatesudo apt install -y kubelet kubeadm kubectl
Not: Bu komutlar, Ubuntu 20.04 ve daha yeni sürümleri için geçerlidir. Farklı Linux dağıtımları kullanıyorsanız, uygun paket yönetim komutlarını araştırmanız gerekebilir.
Adım 2: Swap Alanını Kapatma
Kubernetes, sistemde swap alanının açık olmasına karşı hassastır. Bu nedenle, swap alanını kapatmamız gerekiyor. Bu işlemi yapabilmek için şu komutu kullanabilirsiniz:
kopyalasudo swapoff -a
Eğer swap'ı kalıcı olarak kapatmak isterseniz, `/etc/fstab` dosyasını düzenlemeniz gerekir. Dosyayı açın ve swap satırını yorum satırı haline getirin:
kopyalasudo nano /etc/fstab
Ve ardından ilgili satırın başına bir "#" ekleyin.
Adım 3: Kubeadm ile Cluster Başlatma
Kubernetes cluster'ını oluşturmanın temel adımlarından bir diğeri de `kubeadm` komutunu kullanarak cluster’ı başlatmaktır. Bu komut, Kubernetes cluster’ını kurmayı ve yapılandırmayı çok daha kolay hale getirir.
Cluster'ı başlatmak için şu komutu kullanabilirsiniz:
kopyalasudo kubeadm init --pod-network-cidr=10.244.0.0/16
Not: `--pod-network-cidr` parametresi, pod ağınızın CIDR bloğunu belirler. Bu, Kubernetes'in hangi IP aralığını kullanacağını belirler. Genellikle Flannel gibi ağ çözümleri ile uyumludur.
Eğer komut başarılı bir şekilde çalıştıysa, bir token oluşturulacak ve bu token’ı, diğer node’ları bu cluster’a dahil etmek için kullanacağız.
Adım 4: Kubectl ile Cluster'a Erişim
Cluster’ı başlattık, ancak şu ana kadar sadece root kullanıcısı ile erişebiliyoruz. Kubernetes komutlarını normal bir kullanıcıyla kullanabilmek için, kubectl'yi normal kullanıcıya bağlamamız gerekiyor. Bunun için şu komutu yazın:
kopyalamkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
Bundan sonra, kubectl komutlarıyla cluster’ınızı yönetebileceksiniz.
Adım 5: Ağ Eklentisi (Pod Network) Kurulumu
Kubernetes, pod'lar arasında iletişim sağlayabilmek için bir ağ eklentisine ihtiyaç duyar. Çoğu kullanıcı, Flannel veya Calico gibi ağ çözümlerini tercih eder. Bu yazıda, Flannel ağ çözümünü kuracağız.
Flannel'ı kurmak için şu komutu çalıştırabilirsiniz:
kopyalakubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Bu işlemle birlikte ağ eklentisini Kubernetes cluster'ınıza entegre etmiş oluyorsunuz.
Adım 6: Worker Node Ekleme
Artık master node'u kurduk, fakat cluster’a worker node’lar eklememiz gerekiyor. Başlangıçta master node'unuzda çalışabilir, ancak daha fazla yükü dengelemek için ek node’lar eklemeniz önerilir. Kubeadm init komutunu çalıştırırken size verilen token’ı kullanarak yeni node’ları cluster’a dahil edebilirsiniz.
Yeni node’a şu komutla bağlanabilirsiniz:
kopyalasudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
Bu komutu her worker node için çalıştırmalısınız.
Adım 7: Cluster'ı Kontrol Etme
Her şeyin düzgün çalışıp çalışmadığını kontrol etmek için şu komutu yazabilirsiniz:
kopyalakubectl get nodes
Bu komut, cluster’daki tüm node'ları listeleyecek ve her birinin durumunu gösterecektir. Eğer her şey yolunda ise, kurulumunuzu tamamladınız demektir!
Sonuç: Kubernetes ile Güçlü ve Esnek Bir Yapı
Kubernetes kurulumunu tamamladınız! Şimdi, uygulamalarınızı her boyutta ve her şekilde dağıtabilir, yönetebilir ve ölçeklendirebilirsiniz. Cluster'ınızı oluşturduktan sonra, Kubernetes’in sunduğu çok çeşitli özellikleri keşfetmek için zaman ayırabilirsiniz.
Unutmayın, Kubernetes size sadece uygulamalarınızı değil, aynı zamanda sisteminizi çok daha verimli bir şekilde yönetme gücü verir. Geliştiriciler, operatörler ve DevOps ekipleri için vazgeçilmez bir araç haline gelmiştir.