Skip to main content

Getting Started Kubernetes Clusters with kind

· 2 min read
Hasan Gural

Sevgili Fırat Yaşar ile birlikte bir süredir Bulut Çözümleri ve Ötesi isimli Youtube kanalımızda, Azure Kubernetes Services ile ilgili videolar çekiyoruz. Fakat bu yazıda sıklıkla kullandığım open source bir araç olan 'kind' bahsetmek istiyorum. 'Kind' en basit haliyle size çok hızlı bir şekilde development ortamlarınız için Kubernetes Cluster ortamı oluşturmaktadır. Bunu yapmak için, minikube veya daha farklı teknolojiler kullanabilirsiniz ama benim şu sıralar favorim 'kind' olduğunu söyleyebilirim.

Kind en temel haliyle yaptığı şey, Kubernetes tüm master ve worker node'larını docker içerisinde çalıştırıp size hızlı bir şekilde development ortamını dakikalar içerisinde ayağa kaldırmanıza yardımcı oluyor. Bu yazı içerisinde benim demo ortamımda kullandığım master ve worker nodelarımın yapılandırmasını paylaşacağım.

Öncelikle yapmanız gereken, kind aracına sahip olmanız, en kolay yolu chocolatey üzerinden elde etmek. Dilerseniz şu sayfa üzerinden tüm release versiyonlarına sahip olabilirsiniz. 'kind' indirdikten sonra yapmanız gereken aşağıdaki gibi bir komut satırı çalıştırmak fakat öncesinde kendi yaml konfigurasyon yapılandırmamı inceleyelim.

kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes:

  • role: worker
  • role: worker
  • role: worker
  • role: control-plane kubeadmConfigPatches:
    • | kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: "ingress-ready=true" authorization-mode: "AlwaysAllow" extraPortMappings:
    • containerPort: 80 hostPort: 80 protocol: TCP
    • containerPort: 443 hostPort: 443 protocol: TCP

Yukarıdaki yaml içerisindeki tüm değerlerin anlamları için lütfen 'kind' sayfasına göz gezdiriniz. Özetle ben bu yaml içerisinde üç adet Worker Node ve bir adet Master Node sahip olacağım. Bir takım port yapılandırmaları var onu tamamen ingress controller için yapılandırdım. Ayrıca kind, Ingress Controller'da destekliyor.

Yukarıda gördüğünüz gibi Kubernetes Cluster çok kısa bir süre içerisinde kurulumu tamamlandı ve artık uygulamalarımı dağıtmaya başlayabilirim. Minikube ile yaptığım testlerde özellikle, Taints,Tolerations ve Node Affinity gibi kavramları test etme şansına sahip olamıyordum. Ama artık bunları biraz daha kolay birşekilde yapma şansına sahipim.

Daha fazlası için 'be kind' diyelim ve şu adres üzerinden takip edebilirsiniz.