Kubernetes Nasıl Kurulur ve Cluster Yönetilir? Adım Adım Rehber

Kubernetes Nasıl Kurulur ve Cluster Yönetilir? Adım Adım Rehber

Kubernetes kurulumunu ve cluster yönetimini adım adım anlatan kapsamlı rehber. Kubernetes'i öğrenmek isteyen herkes için başlangıç ve ileri düzey yönetim ipuçları.

Al_Yapay_Zeka

Kubernetes (k8s) nedir, nasıl kurulur ve cluster yönetimi nasıl yapılır? Bu soruların cevabını arayanlar için adım adım bir rehber hazırladık. Teknoloji dünyasında bu kadar popüler hale gelmiş bir platformu, bir yazılım geliştiricinin, sistem yöneticisinin veya DevOps mühendisinin nasıl kullanabileceğini anlatacağım. Kubernetes, uygulama konteynerlerini yönetmek ve dağıtmak için kullanılan bir orkestrasyon aracıdır. Eğer container’larla çalışıyorsanız, Kubernetes sizin için olmazsa olmaz bir araç olacak.

Adım 1: Kubernetes ve Gerekli Bileşenlere Genel Bir Bakış



Kubernetes, birden fazla sunucu üzerinde çalışan uygulamaların yönetimini otomatikleştirir. Temel olarak, uygulamalarınızın dağıtımını, bakımını ve ölçeklenmesini yönetir. K8s, konteynerleri küme şeklinde organize eder ve bu kümelerin düzgün çalışmasını sağlamak için birçok bileşene sahiptir. Başlıca bileşenler:

- Kube-apiserver: Kubernetes API sunucusu, tüm iletişimin merkezidir.
- Kube-scheduler: Yeni pod’ların hangi node’a (sunucu) yerleştirileceğini belirler.
- Kube-controller-manager: Pod ve cluster durumlarını sürekli izler.
- etcd: Cluster durumu hakkında kalıcı bir veri deposu sağlar.

Adım 2: Kubernetes Kurulumu



Kubernetes’i kurmanın birkaç farklı yolu vardır. Bugün, en popüler ve basit yöntemlerden biri olan Minikube ve kubeadm ile nasıl kurulacağını anlatacağım. Eğer geliştirme ve test ortamı kuruyorsanız Minikube kullanabilirsiniz, ancak gerçek üretim ortamında kubeadm daha uygun olacaktır.

Minikube ile Kubernetes Kurulumu



Eğer Kubernetes’i yerel makinenizde hızlıca kurmak istiyorsanız, Minikube mükemmel bir seçenektir. Minikube, bir sanal makine üzerinde Kubernetes cluster’ı çalıştırır. Aşağıdaki adımları takip ederek Minikube’u kurabilirsiniz:

kopyala
# Minikube kurulumu curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo mv minikube-linux-amd64 /usr/local/bin/minikube sudo chmod +x /usr/local/bin/minikube # Minikube başlatma minikube start
PHP


Bu komutları çalıştırarak Minikube'u başlatabilirsiniz. Kurulum tamamlandıktan sonra, kubectl komutlarıyla Kubernetes cluster’ınızı yönetebilirsiniz.

kopyala
kubectl get nodes
PHP


Eğer her şey doğru şekilde kurulmuşsa, bu komut size cluster’daki node’ları gösterecektir.

kubeadm ile Kubernetes Kurulumu



Gerçek bir Kubernetes cluster’ı kurmak için kubeadm kullanmak gereklidir. Bu yöntem, genellikle üretim ortamlarında tercih edilir.

İlk olarak, Kubernetes’i kuracak olan tüm makinelerde aşağıdaki adımları izleyin:

1. Gerekli bileşenlerin yüklenmesi:

kopyala
# Docker'ı yükleme sudo apt-get update sudo apt-get install docker.io # Kubeadm, Kubelet ve kubectl kurulumları sudo apt-get update sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl
PHP


2. Cluster’ın başlatılması:

kopyala
# Master node'u başlatın sudo kubeadm init --pod-network-cidr=10.244.0.0/16
PHP


3. kubectl’i yapılandırma:

Master node’da kubectl’i kullanabilmek için aşağıdaki komutu çalıştırın:

kopyala
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
PHP


4. Pod ağını yapılandırma:

Kubernetes, pod’lar arasında iletişim kurmak için bir ağ çözümü gerektirir. Flannel gibi bir ağ çözümü kurarak bu adımı tamamlayabilirsiniz.

kopyala
# Flannel ağını kurma kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
PHP


Artık Kubernetes cluster’ınız hazır! Diğer node’ları cluster’a eklemek için kubeadm tarafından verilen komutu kullanabilirsiniz.

Adım 3: Cluster Yönetimi ve İzleme



Kubernetes’i kurduktan sonra, cluster yönetimi kritik bir aşamadır. Cluster yönetimini ve izlemeyi basitçe yapabilmek için bazı komutlar ve araçlar vardır.

Cluster Durumunu Görüntüleme:

Cluster’ınızın sağlığını ve durumunu kontrol etmek için şu komutu kullanabilirsiniz:

kopyala
kubectl get pods --all-namespaces
PHP


Bu komut, tüm namespace’lerdeki pod’ları listeleyecektir.

Logları İzleme:

Bir pod’un loglarını görmek için şu komutu kullanabilirsiniz:

kopyala
kubectl logs
PHP


Cluster Performansını İzleme:

Kubernetes’in performansını izlemek için “Kubernetes Dashboard” kullanabilirsiniz. Bu araç, GUI üzerinden cluster yönetimini oldukça kolaylaştırır.

kopyala
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml kubectl proxy
PHP


Bunlar, cluster yönetiminizi daha verimli hale getirecek birkaç temel adımdır.

Adım 4: Kubernetes Cluster’ınızı Ölçeklendirme



Kubernetes’in en güçlü özelliklerinden biri, uygulamalarınızı kolayca ölçeklendirebilmenizdir. Bir uygulama yükü artarsa, Kubernetes otomatik olarak yeni pod’lar oluşturur. Bu, manuel müdahale gerektirmeden hizmetin kesintisiz çalışmasını sağlar.

Örneğin, aşağıdaki komutla bir deployment’ı ölçeklendirebilirsiniz:

kopyala
kubectl scale deployment --replicas=3
PHP


Bu komut, belirttiğiniz deployment’ı 3 kopya (replica) ile çalıştırır.

Sonuç: Kubernetes ile Güçlü ve Esnek Uygulama Yönetimi



Kubernetes ile kurduğunuz cluster, uygulamalarınızın verimli ve ölçeklenebilir bir şekilde çalışmasını sağlayacaktır. Bu araç, her geçen gün daha fazla geliştirici ve şirket tarafından benimseniyor, çünkü container orkestrasyonu için sunduğu güçlü çözümler oldukça etkili. K8s’in sunduğu otomasyon, ölçeklenebilirlik ve güvenlik özellikleri ile her türlü yazılım altyapısını yönetmek daha kolay hale gelir.

İçerik sonunda, Kubernetes kurulumunu ve cluster yönetimini başarıyla tamamladınız. Artık uygulamalarınızı Kubernetes üzerinde yönetebilir ve optimize edebilirsiniz. Unutmayın, Kubernetes öğrenme süreci zaman alabilir, ama her geçen gün daha fazla keşif yapacak ve bu güçlü aracı daha verimli kullanacaksınız.

İlgili Yazılar

Benzer konularda diğer yazılarımız

Jenkins Kullanımı: CI/CD Süreçlerini Otomatikleştirme ile Yazılım Geliştirme Sürecinizi Hızlandırın

Yazılım geliştirme dünyasında, kod yazmanın ve test etmenin ötesine geçmek gerektiği zamanlar gelir. Kodunuzun sürekli olarak entegre edilmesi, test edilmesi ve canlıya alınması gerekir. İşte tam bu noktada Jenkins devreye giriyor. Jenkins, yazılım geliştirme...

"Başarılı Bir API Yönetimi İçin Adım Adım Kılavuz: Performans ve Güvenlik"

---API’ler, modern yazılım dünyasında adeta hayat damarlarımız gibi. Web uygulamaları arasında veri iletişimini sağlayan bu araçlar, iş dünyasında kritik bir rol oynuyor. Ancak, bir API’nin düzgün çalışması ve güvenli olması için titizlikle yönetilmesi...

GitLab CI/CD Kurulumu ve Yönetimi: Adım Adım Rehber

GitLab CI/CD Nedir ve Neden Kullanılır?Yazılım geliştirme dünyasında her şey hızla değişiyor. Projeler büyüdükçe, sürüm yönetimi karmaşık hale gelir. İşte tam burada GitLab CI/CD devreye giriyor. GitLab, yazılım geliştirme sürecini daha hızlı, verimli...

Docker ile Mikroservis Mimarisi: Performans Sorunlarını Çözmek İçin 10 Altın Kural

Daha hızlı, daha esnek ve daha verimli bir yazılım geliştirme süreci mi istiyorsunuz? O zaman Docker ile mikroservis mimarisini kesinlikle keşfetmeniz gerekiyor. Ancak, her şeyin mükemmel göründüğü bu dünyada, karşılaşılan performans sorunları bazen işlerin...

Docker ve Kubernetes Arasındaki Farklar: Hangi Durumda Hangisini Seçmelisiniz?

Docker ve Kubernetes: İki Güçlü Araç, Birçok Farklı Kullanım AmacıBir yazılım geliştiricisi olarak, her geçen gün daha fazla sayıda yeni araçla karşılaşıyoruz. Bu araçların bazıları gerçekten hayat kurtarıcı, bazıları ise ne kadar zaman harcarsak harcayalım,...

LXC Container Networking Issue: Çözüm Adım Adım

LXC (Linux Containers) kullanarak birden fazla konteyner çalıştırmak, genellikle çok verimli ve hafif bir sanallaştırma deneyimi sunar. Ancak, her şeyin pürüzsüz gitmediği zamanlar da olur. Özellikle container networking (konteyner ağ bağlantısı) konusunda...