K3d Nedir ve Nasıl Kullanılır?
K3d, K3s Kubernetes dağıtımını Docker konteynerlerinde çalıştırmak için kullanılan hafif bir araçtır. K3d, özellikle geliştirme, test ve eğitim ortamları için tasarlanmıştır. Docker üzerinde çalışan Kubernetes cluster’ları oluşturmanızı, yönetmenizi ve test etmenizi sağlar. K3d, hızlı kurulum ve esnek yapılandırma sunarak, Kubernetes cluster’larını daha kolay ve erişilebilir hale getirir.
Hangi Uygulamalar Kullanır?
K3d, aşağıdaki kullanım senaryoları için idealdir:
- Yerel Geliştirme Ortamları: Hızlı Kubernetes kurulumlarıyla yerel geliştirme yapmak isteyen yazılımcılar.
- Test ve Eğitim: Test ortamlarında veya eğitimlerde kolay Kubernetes simülasyonları oluşturmak.
- CI/CD Süreçleri: CI/CD pipeline’larında hızlı ve geçici Kubernetes cluster’ları oluşturmak.
- Docker ile Entegrasyon: Konteyner tabanlı mikroservis uygulamalarını test etmek.
Avantajları Nelerdir?
- Hafif ve Hızlı: K3s’in hafif yapısını Docker üzerinde çalıştırarak, hızlı ve kolay bir Kubernetes kurulumu sağlar.
- Esnek Kurulum: Tek bir komutla multi-node cluster’lar oluşturabilirsiniz.
- Geliştirme ve Test Odaklı: Üretim dışı ortamlar için mükemmel bir araçtır.
- Docker ile Tam Entegrasyon: Docker üzerinden Kubernetes cluster’ları oluşturmanızı ve yönetmenizi sağlar.
- Kaynak Verimliliği: Minimal donanım kaynaklarıyla çalışabilir.
Nelere Dikkat Etmek Lazım?
- Üretim Ortamları İçin Uygun Değil: K3d, yerel geliştirme ve test için tasarlanmıştır; üretim ortamında kullanılmamalıdır.
- Kaynak Kısıtlamaları: Docker konteynerlerinin kaynak yönetimini dikkatli yapılandırmak gerekir.
- Cluster Kalıcılığı: K3d cluster’ları Docker konteynerlerinde çalıştığından, konteynerler silindiğinde cluster da kaybolur.
- Daha Az Özellik: Üretim ortamlarına yönelik tam Kubernetes işlevselliği sunmaz.
K3d Nasıl Kullanılır?
1. K3d Kurulumu
K3d kurulumu hızlı ve kolaydır.
Adım 1: K3d’yi Yükleyin K3d’yi yüklemek için aşağıdaki komutu kullanabilirsiniz:
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
Adım 2: Kurulumu Doğrulayın K3d’nin doğru kurulduğunu kontrol etmek için:
k3d version
2. K3d ile Cluster Oluşturma
Adım 1: Basit Bir Cluster Oluşturma K3d ile tek bir master node içeren bir Kubernetes cluster’ı oluşturmak için:
k3d cluster create my-cluster
Cluster’ı listelemek için:
k3d cluster list
Adım 2: Multi-Node Cluster Oluşturma Birden fazla worker node içeren bir cluster oluşturmak için:
k3d cluster create my-cluster — agents 2
Bu komut, 1 master ve 2 worker node içeren bir Kubernetes cluster’ı oluşturur.
3. Kubernetes CLI (kubectl) ile Çalışma
K3d, kubectl ile uyumludur. Kubectl kullanarak cluster’ınızı yönetmek için aşağıdaki komutu çalıştırarak kubeconfig’i ayarlayın:
export KUBECONFIG=$(k3d kubeconfig write my-cluster)
Cluster’daki node’ları görmek için:
kubectl get nodes
4. Uygulama Dağıtımı
Adım 1: Nginx Dağıtımı Kubernetes üzerinde bir Nginx pod’u çalıştırmak için:
kubectl create deployment nginx — image=nginx
kubectl expose deployment nginx — type=NodePort — port=80
Adım 2: Pod Durumunu Kontrol Etme Uygulamanın çalıştığından emin olmak için pod durumunu kontrol edin:
kubectl get pods
Adım 3: Uygulamaya Erişim Uygulamanın portunu almak için şu komutu çalıştırın:
kubectl get svc nginx
5. Cluster’ı Silme
Oluşturduğunuz bir cluster’ı silmek için:
k3d cluster delete my-cluster
6. Kullanım Örnekleri
Örnek 1: CI/CD Ortamında K3d Kullanımı Jenkins veya GitLab CI/CD pipeline’larında Kubernetes iş yüklerini test etmek için K3d kullanılabilir. Geçici cluster’lar hızlıca oluşturulup iş tamamlandıktan sonra silinebilir:
k3d cluster create ci-cluster
kubectl apply -f deployment.yaml
k3d cluster delete ci-cluster
Örnek 2: Docker Compose ile Entegrasyon K3d’yi Docker Compose ile entegre ederek birden fazla konteynerin Kubernetes cluster’ında nasıl çalıştığını test edebilirsiniz.
K3d Kullanırken Nelere Dikkat Edilmeli?
- Kubeconfig Yönetimi: Kubectl’in doğru cluster’a bağlandığından emin olun.
- Kaynak İzleme: Docker konteynerlerinin kaynak kullanımını izleyin.
- Cluster Yapılandırması: Cluster’ı oluştururken CPU ve bellek gibi kaynak sınırlarını doğru belirleyin.
- Silinme Durumu: Docker konteynerlerinin yanlışlıkla silinmemesi için dikkatli olun.
K3d, K3s’in hafif yapısını Docker üzerinde çalıştırarak Kubernetes deneyimini hızlı ve kolay bir şekilde sunar. Geliştiriciler, test ortamları ve CI/CD pipeline’ları için ideal bir araçtır. K3d sayesinde Kubernetes cluster’larını sadece birkaç komutla oluşturabilir, test edebilir ve silebilirsiniz.