Kubernetes ve Mikroservis Mimarisi Nedir?
Kubernetes, uygulamaları kapsayıcılar içinde (container) çalıştırmayı ve yönetmeyi sağlayan açık kaynaklı bir platformdur. Mikroservis mimarisi ise uygulamanın her bir fonksiyonunu bağımsız bir servis olarak ayırarak, yazılımın daha modüler ve yönetilebilir olmasını sağlar. Birbirini tamamlayan bu iki teknoloji, yazılımların daha esnek, hızlı ve güvenilir bir şekilde geliştirilmesini mümkün kılar.
Adım 1: Kubernetes Kurulumu
Kubernetes’i kurmaya başlamadan önce, ilk önce bilgisayarınızda bir Docker ortamının kurulu olduğundan emin olmalısınız. Docker, Kubernetes için bir konteyner yönetim platformudur ve her iki araç birlikte çalışarak güçlü bir altyapı sağlar.
İlk adımda, Kubernetes'i kurmak için aşağıdaki komutları terminal veya komut satırında çalıştırabilirsiniz:
kopyala# Kubernetes'i yüklemek için: curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl
Bu adımlar, Kubernetes'in temel yönetim aracını (kubectl) kurmanıza olanak tanır. Kubernetes ile etkileşimde bulunmak için bu araç gereklidir. Şimdi Kubernetes cluster'ınızı oluşturmak için hazırız!
Adım 2: Kubernetes Cluster'ı Kurma
Bir cluster, Kubernetes'in yönetim platformudur. İster yerel olarak bir test ortamı kurmak isterseniz, ister bulutta çalıştırmak isterseniz, cluster kurulumunu kolayca yapabilirsiniz. Yerel olarak kurulum için Minikube kullanabilirsiniz. Minikube, Kubernetes'in tek bir makine üzerinde çalışmasını sağlayan bir araçtır.
kopyala# Minikube kurulumu: curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 chmod +x minikube sudo mv minikube /usr/local/bin/
Kurulum tamamlandığında, aşağıdaki komutla Kubernetes cluster'ınızı başlatabilirsiniz:
kopyala# Minikube başlatma: minikube start
Adım 3: Mikroservis Mimarisi Tasarımı
Mikroservisler, bir yazılımın farklı parçalarının birbirinden bağımsız olarak geliştirilebilmesini sağlar. Her mikroservis, kendi veritabanı ve işlevselliğiyle bağımsız çalışabilir. Mikroservislerin doğru yapılandırılması, uygulamanızın ölçeklenebilirliğini ve dayanıklılığını artırır. Kubernetes, mikroservisleri kapsayıcılar içinde çalıştırarak her birini izole eder ve yönetir.
Örneğin, bir e-ticaret uygulamasında, ödeme işlemleri, kullanıcı yönetimi, ürün kataloğu gibi farklı işlevler mikroservisler olarak ayrılabilir. Bu şekilde her bir mikroservis kendi hızında güncellenebilir.
Adım 4: Mikroservisleri Kubernetes Üzerine Dağıtma
Kubernetes'e mikroservislerinizi dağıtmak için, her mikroservis için bir "deployment" dosyası oluşturmanız gerekir. Bu dosya, Kubernetes'e hangi konteynerin hangi kaynaklarla çalıştığını ve ne zaman yeniden başlatılacağını bildirir.
Aşağıda, bir mikroservisi Kubernetes üzerinde dağıtmak için gerekli olan örnek bir deployment dosyasını görebilirsiniz:
kopyalaapiVersion: apps/v1 kind: Deployment metadata: name: ecommerce-deployment spec: replicas: 3 selector: matchLabels: app: ecommerce template: metadata: labels: app: ecommerce spec: containers: - name: ecommerce-container image: ecommerce-app:v1 ports: - containerPort: 8080
Bu dosya, Kubernetes'e e-ticaret uygulamanızın üç kopyasını çalıştırmasını söyler. "replicas" değeri, aynı uygulamanın birkaç kopyasının çalışmasını sağlayarak, uygulamanın daha dayanıklı olmasını sağlar.
Adım 5: Ölçekleme ve Yönetim
Kubernetes, mikroservislerinizi kolayca ölçeklendirmenizi sağlar. Eğer yük arttığında daha fazla kopya çalıştırmak isterseniz, tek bir komutla bunu gerçekleştirebilirsiniz:
kopyala# Kubernetes ile mikroservisi ölçeklendirme kubectl scale deployment ecommerce-deployment --replicas=5
Bu komut, mevcut uygulamanın 5 kopyasını çalıştıracak şekilde ölçeklendirir. Ayrıca, Kubernetes'te pod'larınızın sağlık durumlarını kontrol etmek için şu komutları kullanabilirsiniz:
kopyala# Pod'ları kontrol etme: kubectl get pods
Adım 6: Kubernetes ile Yönetim ve İzleme
Kubernetes, uygulamanızı sadece dağıtmakla kalmaz, aynı zamanda sürekli olarak izler ve yönlendirir. Kubernetes Dashboard, tüm uygulama ve kaynaklarınızın görsel bir yönetim aracıdır. Bu dashboard sayesinde pod'larınızı, servislerinizi, deployment'larınızı kolayca kontrol edebilir ve yönetebilirsiniz.
Kubernetes’i daha verimli kullanmak için çeşitli monitoring araçları (Prometheus, Grafana gibi) kullanarak, performans verilerini toplar ve analiz edebilirsiniz.
Sonuç
Kubernetes ile mikroservis mimarisi kurmak, yazılım geliştirme sürecinizdeki en önemli adımlardan biri olabilir. Bu rehberde, Kubernetes’in nasıl kurulduğunu, mikroservislerin nasıl dağıtıldığını ve nasıl yönetileceğini adım adım öğrendik. Bu bilgilerle, güçlü ve ölçeklenebilir bir mikroservis altyapısı kurarak, gelecekteki projelerinizde başarıyı yakalayabilirsiniz.
Unutmayın, Kubernetes’i ve mikroservisleri öğrenmek, biraz zaman alabilir ancak sonuçları kesinlikle buna değecektir. Her adımda biraz daha ileri gitmek, her bir mikroservisi bağımsız olarak yönetmek ve ölçeklendirmek, işinizi çok daha kolay hale getirecektir.