Kubernetes Nasıl Kurulur? minikube ve k3s Adım Adım

Kubernetes nasıl kurulur?
Kubernetes, konteynerleri bir ya da birden çok makinede çalıştıran, yöneten ve çöktüğünde yeniden başlatan açık kaynaklı bir orkestrasyon sistemidir. Kurulum için bilgisayarınızda öğrenme amacıyla minikube, tek bir Linux sunucuda hafif bir küme için k3s kullanırsınız. İkisini de kubectl komutuyla yönetirsiniz.
Biz dijital pazarlama ve web ekibiyiz, hosting firması değiliz. Bu yüzden anlattığımız komutları ve gereksinimleri minikube, k3s ve Kubernetes resmi dokümanlarından aldık. Sürüm numarası vermiyoruz; her zaman güncel kararlı sürümü kurarsınız ve resmi sayfayı kontrol edersiniz.
Peki Kubernetes nasıl kurulur ve kurmadan önce hangi soruyu yanıtlamalısınız? İlk soru şudur: Bu kümeyi öğrenmek için mi, yoksa gerçek bir uygulamayı çalıştırmak için mi istiyorsunuz? Cevabınız yolunuzu belirler, çünkü öğrenme amacıyla kurulan küme ile sürekli çalışan küme farklı özen ister.
Yazının sonunda iki şeyi net görürsünüz. Birincisi, bir kümeyi nasıl ayağa kaldırıp ilk uygulamayı nasıl çalıştırdığınızı. İkincisi, hangi durumda bu işi kendiniz yapmamanız ve hosting sağlayıcınıza bırakmanız gerektiğini.
| Amaç | Önerilen yol | Nerede çalışır |
|---|---|---|
| Öğrenmek, denemek | minikube | Kendi bilgisayarınız |
| Küçük bir üretim ya da test ortamı | k3s | Tek bir Linux sunucu (VPS) |
| Kritik ve büyük trafik | Yönetilen Kubernetes hizmeti | Bulut sağlayıcısı |
Kubernetes nedir ve pod, deployment, service ne demek?
Kubernetes'i anlamak için üç kavram yeter. Pod, kümede çalışan en küçük birimdir ve içinde bir ya da birkaç konteyner barındırır. Deployment, bu pod'lardan kaç tane çalışacağını ve nasıl güncelleneceğini tarif eder. Service ise pod'lara sabit bir ağ adresi verir.
Resmi dokümana göre Deployment, uygulamanızın örneklerini oluşturmaktan ve güncellemekten sorumludur. Bir düğüm devre dışı kalırsa Deployment denetleyicisi örneği başka bir düğümde yeniden başlatır. Yani siz "iki kopya çalışsın" dersiniz, Kubernetes bunu sürdürür.
Service tanımı da resmi dokümanda şöyle geçer: Service, bir ya da birden çok pod olarak çalışan bir ağ uygulamasını dışarıya açma yöntemidir. Pod'ların IP adresi değişebilir. Service sayesinde ise uygulamanıza her zaman aynı adresten ulaşırsınız.
- Pod: Konteynerlerin çalıştığı en küçük birim.
- Deployment: İstenen pod sayısını ve güncelleme düzenini tarif eder.
- Service: Pod'lara kararlı bir ağ adresi sağlar.
- Node (düğüm): Pod'ların çalıştığı makine.
- Namespace: Kaynakları gruplara ayıran mantıksal bölme.
Kubernetes'e gerçekten ihtiyacınız var mı?
Çoğu kurumsal web sitesi, blog ya da küçük e-ticaret mağazası için cevap hayırdır. Tek bir sunucuda çalışan bir WordPress, Laravel ya da Node.js uygulaması Kubernetes olmadan daha basit, ucuz ve sorunsuz yönetilir. Kubernetes bir karmaşıklık yatırımıdır.
Docker ve konteyner mantığını henüz bilmiyorsanız önce Docker nedir ve konteyner rehberi yazımızı okuyun. Orada "Kubernetes şart mı" bölümünde bu soruyu ayrıntılı cevapladık, burada tekrar anlatmıyoruz. Kısaca: tek sunucu ve birkaç konteyner için çoğu zaman Docker Compose yeter. Kubernetes kurulumuna başlamadan önce bu seçeneği değerlendirmek, haftalarca sürebilecek bir uğraşı baştan engelleyebilir.
Kubernetes şu durumlarda anlam kazanır. Uygulamanız birden çok servisten oluşuyorsa, trafik dalgalanıyorsa ve otomatik ölçeklenme ya da kesintisiz güncelleme istiyorsanız ona yönelirsiniz. Ayrıca ekibinizde bu sistemi işletecek bilgi birikimi varsa maliyet karşılığını verir. Bilgi birikimi yoksa öğrenme eğrisi zamanınızı yer ve gerçek işinizden uzaklaştırır.
- Tek bir site ve tek bir sunucu: Kubernetes gerekmez.
- Birkaç konteyner, düşük trafik: Docker Compose çoğu zaman yeter.
- Çok servis, yüksek trafik, otomatik ölçekleme: Kubernetes düşünün.
- Öğrenme ve portföy amacı: minikube ile başlayın.
Kurulumdan önce hangi ön koşulları sağlamalısınız?
İlk olarak donanımı kontrol edin. Resmi minikube dokümanı en az 2 CPU, 2 GB boş bellek ve 20 GB boş disk alanı istiyor. Ayrıca internet bağlantısı ve Docker gibi bir konteyner ya da sanal makine yöneticisi gerekiyor. Yani sekiz GB belleği olan bir dizüstü bilgisayarda diğer uygulamaları kapatmanız iyi olur.
k3s için resmi gereksinimler daha hafif görünür. Sunucu düğümü için 2 çekirdek ve 2 GB RAM, ajan düğümü için 1 çekirdek ve 512 MB RAM yazıyor. Bu rakamlar asgari değerlerdir; üzerine kendi uygulamalarınızı eklediğinizde ihtiyaç artar.
İşletim sistemi tarafında k3s çoğu modern Linux dağıtımında çalışır; Ubuntu ve Debian da resmi dokümanda anılıyor. Sunucu seçimi konusunda kararsızsanız VPS, VDS ve bulut sunucu farkını anlattığımız yazıya bakın.
- Komutları çalıştırmak için sudo yetkisi olan bir Linux kullanıcısı.
- Güncel bir paket yöneticisi ve internet erişimi.
- Yedek ya da anlık görüntü: sunucuda denemeden önce geri dönüş noktası alın.
- Yeterli bellek: küme bileşenleri kendi başına RAM tüketir.
Minikube ile Kubernetes nasıl kurulur?
Minikube, bilgisayarınızda tek düğümlü yerel bir Kubernetes kümesi açar. Öğrenmek ve uygulamanızı denemek için en güvenli yoldur, çünkü bir hata yaparsanız kümeyi silip baştan başlarsınız. Üretim sunucusu olarak kullanmayın.
macOS'ta Homebrew kullanıyorsanız kurulum tek satırdır. Resmi başlangıç sayfası bu komutu veriyor.
brew install minikubeLinux'ta (x86-64) resmi sayfadaki kararlı ikili dosyayı indirip yerine koyarsınız. Önce dosyayı indirin, sonra sistem yoluna kurun.
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64sudo install minikube-linux-amd64 /usr/local/bin/minikuberm minikube-linux-amd64Windows ya da farklı işlemci mimarisi kullanıyorsanız minikube resmi başlangıç sayfasındaki seçimi izleyin. Orada işletim sistemine göre güncel komutlar çıkıyor.
Minikube hangi sürücüyle çalışır ve hangisini seçmelisiniz?
Minikube kümeyi doğrudan işletim sisteminizde değil, bir konteyner ya da sanal makine içinde çalıştırır. Resmi başlangıç sayfası Docker, QEMU, Hyperkit, Hyper-V ve KVM gibi yöneticileri sürücü olarak sayar. Hangisinin sizde uygun olduğu işletim sisteminize bağlıdır.
Docker zaten kuruluysa onunla başlamak en pratik yoldur. Ek bir sanal makine yazılımı kurmadan, minikube'nin kendi konteynerini çalıştırırsınız. Docker bilginiz yoksa önce konteyner temellerini öğrenmek işinizi kolaylaştırır.
Sürücü seçimi hata verirse panik yapmayın. Minikube mesajında hangi sürücünün eksik olduğunu yazar ve resmi sürücüler sayfasını gösterir. Üstelik sürücüyü sonradan değiştirebilirsiniz; bunun için kümeyi silip yeniden başlatmanız gerekir.
- Docker kuruluysa: en az ek yazılımla başlayabilirsiniz.
- Sanal makine tercih ediyorsanız: işletim sisteminizin desteklediği sürücüyü seçin.
- Hata alıyorsanız: resmi sürücüler sayfasındaki ilgili bölümü okuyun.
Minikube kümesini nasıl başlatır ve kontrol edersiniz?
Kurulum bittikten sonra kümeyi tek komutla başlatırsınız. Minikube uygun bir sürücü (örneğin Docker) bulursa onu kullanır. Sürücü bulamazsa hata mesajı verir ve resmi sürücüler sayfasına yönlendirir.
minikube startArdından kümenin ayakta olduğunu doğrulayın. Resmi dokümandaki komut tüm namespace'lerdeki pod'ları listeler. Kubectl'i ayrıca kurmadıysanız minikube kendi kubectl'ini de sunuyor.
kubectl get po -Aminikube kubectl -- get po -AGörsel bir panel isterseniz minikube dashboard komutu web arayüzünü açar. İşiniz bitince minikube stop ile kümeyi durdurursunuz. Tüm minikube kümelerini silmek için minikube delete --all komutu vardır.
Kısacası günlük akış üç adımdır: başlatın, deneyin, durdurun. Kümeyi sürekli açık bırakmak bilgisayarınızın belleğini ve pilini tüketir.
k3s nedir ve minikube'den farkı nedir?
k3s, hafif ve tek bir ikili dosya olarak dağıtılan bir Kubernetes dağıtımıdır. Az kaynakla çalışacak şekilde tasarlandığı için küçük sunucularda ve uç cihazlarda tercih edilir. Minikube ise yerel öğrenme ortamıdır.
Fark amaçta yatıyor. Minikube'yi bilgisayarınızda deneme için açar, işiniz bitince kapatırsınız. k3s'i ise bir Linux sunucuya kurarsınız ve sürekli çalışan bir küme olarak bırakırsınız. Bu nedenle k3s'in güvenlik ve bakım yükü daha fazladır. Sunucuda Kubernetes nasıl kurulur sorusunu yanıtlarken bu farkı baştan kabul etmek, sonradan yaşayacağınız sürprizleri azaltır.
| Özellik | minikube | k3s |
|---|---|---|
| Ana kullanım | Yerel öğrenme ve deneme | Tek sunucuda hafif küme |
| Çalıştığı yer | Dizüstü ya da masaüstü | Linux sunucu, VPS |
| Asgari kaynak (resmi) | 2 CPU, 2 GB bellek, 20 GB disk | Sunucu: 2 çekirdek, 2 GB RAM |
| Kurulum şekli | Paket yöneticisi ya da ikili dosya | Resmi kurulum betiği |
| Kalıcılık | Geçici, silinebilir | Sürekli çalışır |
| Dışarıya açık port riski | Düşük | Yüksek, güvenlik duvarı şart |
k3s ile tek sunucuya Kubernetes nasıl kurulur?
Resmi hızlı başlangıç sayfası, kurulumu tek satırlık bir komutla gösterir. Biz bu satırı olduğu gibi yazmıyoruz. İnternetten gelen bir betiği doğrudan çalıştırmak, içeriğini görmeden sunucuya yetki vermek demektir. Bu yüzden önce indirin, sonra okuyun, en son çalıştırın.
Birinci adımda betiği dosyaya kaydedin. İkinci adımda içeriğine göz atın.
curl -sfL https://get.k3s.io -o k3s-install.shless k3s-install.shBetiği anlayıp güvendikten sonra yönetici yetkisiyle çalıştırın. Resmi dokümana göre kurulum tek düğümlü bir sunucu oluşturur ve k3s'i servis olarak başlatır.
sudo sh k3s-install.shKurulum sırasında kubectl, crictl, ctr gibi araçlar ile k3s-killall.sh ve k3s-uninstall.sh betikleri de gelir. Birkaç dakika içinde kümeniz hazır olur. Bunun için ek bir kubectl kurmanız gerekmez.
Kubernetes nasıl kurulur sorusunun bu bölümdeki cevabı özetle üç adımdır: indirin, okuyun, çalıştırın. Her adımı atlamadan uygulayın.
Not: Betiğin tam parametrelerini ve güncel davranışını mutlaka k3s hızlı başlangıç sayfasında kontrol edin. Belirli bir sürümü sabitlemek isterseniz yöntemi yine resmi dokümandan öğrenin.
k3s kurulumunu nasıl doğrular ve kubeconfig'i nasıl kullanırsınız?
Kurulumdan sonra düğümün hazır olduğunu kontrol edin. k3s kendi kubectl'ini getirdiği için komutu k3s kubectl biçiminde çalıştırabilirsiniz. Düğüm "Ready" durumuna geçtiyse küme çalışıyor demektir. Henüz hazır değilse bir iki dakika bekleyip komutu yeniden çalıştırın; k3s bileşenleri başlarken kısa bir gecikme olabilir.
sudo k3s kubectl get nodessudo k3s kubectl get pods -AKubeconfig dosyası, kümeye bağlanmak için gereken adresi ve kimlik bilgisini taşır. k3s bu dosyayı /etc/rancher/k3s/k3s.yaml konumuna yazar. Başka bir bilgisayardan bağlanacaksanız dosyayı kopyalarsınız.
Burada kritik bir uyarı var. Bu dosya kümeye yönetici erişimi verir. Parola gibi korumanız, e-postayla göndermemeniz ve herkese açık bir depoya koymamanız gerekir. Kopyaladığınız dosyadaki sunucu adresini kendi sunucunuza göre düzenleyin; örnekte 203.0.113.10 gibi bir belgeleme adresi görürsünüz.
- Kubeconfig dosyasını yalnızca güvenli kanaldan taşıyın.
- Dosya izinlerini yalnızca gerekli kullanıcıya açık tutun.
- İşi biten kopyaları silin.
- Yönetici erişimini günlük işler için kullanmayın.
Kurulum sırasında hangi hatalarla karşılaşırsınız ve nasıl çözersiniz?
Kurulum hataları genellikle üç kaynaktan gelir: yetersiz kaynak, eksik sürücü ve ağ ya da güvenlik duvarı sorunları. Hata mesajını okumak çözümün yarısıdır. Bu yüzden mesajı kopyalayıp resmi dokümanda aramanızı öneririz.
Bellek yetersizse minikube ya da k3s düzgün başlamayabilir. Bu durumda diğer uygulamaları kapatın ya da sunucunun belleğini artırın. Resmi gereksinimlerin altında kalırsanız küme ilk bakışta çalışsa bile yük altında kararsızlaşır.
Uzak bir bilgisayardan sunucuya bağlanamıyorsanız önce güvenlik duvarını kontrol edin. k3s dokümanı API sunucusu için 6443/TCP portunu listeler. Ancak bu portu herkese açmadan, yalnızca kendi IP adresinize izin vermeniz gerekir.
- Sürücü bulunamadı: Docker ya da başka bir yöneticiyi kurun ve yeniden deneyin.
- Bellek ya da disk yetersiz: kaynakları artırın ya da gereksiz uygulamaları kapatın.
- Kümeye bağlanılamıyor: kubeconfig adresini ve güvenlik duvarını kontrol edin.
- Düğüm hazır değil: birkaç dakika bekleyin, sonra
kubectl describe nodeile nedene bakın.
Kubectl temel komutları nelerdir?
Kubectl, Kubernetes ile konuşan komut satırı aracıdır. Biçimi basittir: kubectl, bir eylem ve bir kaynak. Örneğin kubectl get pods pod'ları listeler. Aşağıdaki tablo günlük işin büyük kısmını kapsar.
| Komut | Ne yapar |
|---|---|
| kubectl get nodes | Düğümleri ve durumlarını listeler |
| kubectl get pods | Pod'ları listeler |
| kubectl get deployments | Deployment kaynaklarını listeler |
| kubectl describe pod ADI | Bir pod'un ayrıntısını ve olaylarını gösterir |
| kubectl logs ADI | Konteyner günlüğünü gösterir |
| kubectl apply -f dosya.yaml | YAML dosyasındaki tanımı kümeye uygular |
| kubectl delete -f dosya.yaml | Dosyadaki kaynakları siler |
| kubectl scale | Kopya sayısını değiştirir |
Bu komutların çoğunda -n bayrağıyla namespace belirtirsiniz. Belirtmezseniz varsayılan namespace kullanılır. Ayrıca -A bayrağı tüm namespace'leri birden gösterir.
İpucu olarak, yeni bir komutta kaynak adını yazmadan önce kubectl get ile listeyi görün. Böylece yanlış kaynağı silme riskini azaltırsınız.
İlk uygulamayı Deployment ile nasıl dağıtırsınız?
İlk uygulama için bir YAML dosyası yazın. Dosya, iki kopyalı basit bir web sunucusu tarif eder. Konteyner olarak resmi nginx imajını kullanıyoruz; üretimde imaj etiketini sabitleyin ve kendi imajınızı kullanın. Örnek içerik example.com için bir demo sayfası gibi düşünülebilir.
apiVersion: apps/v1kind: Deploymentmetadata: name: hello-webspec: replicas: 2 selector: matchLabels: app: hello-web template: metadata: labels: app: hello-web spec: containers: - name: web image: nginx ports: - containerPort: 80 resources: requests: cpu: 50m memory: 64Mi limits: memory: 128MiDosyayı deployment.yaml adıyla kaydedin ve uygulayın. Ardından durumu izleyin.
kubectl apply -f deployment.yamlkubectl get deploymentskubectl get podsResmi öğreticide aynı işi tek komutla da gösteriyorlar: kubectl create deployment ile bir imajdan Deployment üretirsiniz. YAML yöntemi ise değişikliği dosyada tutmanızı sağlar. Bu sayede aynı tanımı yeniden uygular ve sürüm kontrolüne koyarsınız. Ayrıntılar için Kubernetes Deployment öğreticisine bakın.
Uygulamayı Service ile dışarıya nasıl açarsınız?
Resmi dokümana göre pod'lar özel ve yalıtılmış bir ağda çalışır. Varsayılan olarak aynı kümedeki diğer pod'lar ve servisler onları görür; dışarısı göremez. Dışarıya açmak için Service oluşturursunuz.
Service türlerinden varsayılan olan ClusterIP, uygulamayı yalnızca küme içinde erişilebilir yapar. NodePort, her düğümün IP adresinde sabit bir port açar. LoadBalancer ise bulut sağlayıcısının yük dengeleyicisini kullanır.
apiVersion: v1kind: Servicemetadata: name: hello-webspec: type: NodePort selector: app: hello-web ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30080Dosyayı uyguladıktan sonra erişim yolu ortama göre değişir. Minikube'de minikube service hello-web komutu adresi açar. k3s'te ise sunucunun IP adresi ve NodePort ile bağlanırsınız; örneğin 203.0.113.10 adresi için http://203.0.113.10:30080.
Geçici bir test için kubectl port-forward deployment/hello-web 8080:80 komutu da işe yarar. Böylece hiçbir portu dışarıya açmadan yerelde deneyebilirsiniz. Bir NodePort açtığınızda güvenlik duvarını mutlaka gözden geçirin.
Uygulamayı nasıl ölçekler ve güncellersiniz?
Ölçekleme, Deployment'taki kopya sayısını değiştirmekten ibarettir. Trafik artınca kopyaları çoğaltır, azalınca düşürürsünüz. Bu işi tek komutla yaparsınız. Ölçekleme işe yarar, ancak düğümün kaynağı yetmiyorsa fazladan pod başlayamaz ve Pending durumunda bekler.
kubectl scale deployment hello-web --replicas=3kubectl get podsGüncelleme için imajı değiştirirsiniz. Deployment, eski pod'ları yavaş yavaş yenileriyle değiştirir; böylece uygulama kesintiye uğramadan güncellenir. Yeni imaj etiketini YAML dosyasında düzeltip yeniden kubectl apply çalıştırmak en temiz yoldur.
kubectl rollout status deployment/hello-webkubectl rollout undo deployment/hello-webİlk komut güncellemenin ilerleyişini gösterir. İkinci komut sorun çıkarsa bir önceki sürüme döner. Ancak veritabanı şeması gibi geri alınamayan değişiklikleri bu komut kurtarmaz. Dolayısıyla veritabanı güncellemelerinde önce web sitesi yedekleme stratejisini uygulayın.
Pod çalışmıyorsa nasıl teşhis edersiniz?
Sorun çıktığında panik yapmayın; sıra her zaman aynıdır. Önce durumu görün, sonra ayrıntıya inin, en son günlüğe bakın. Bu üç adım sorunların büyük kısmını çözer.
kubectl get podsile durum sütununa bakın. Pending, ImagePullBackOff ve CrashLoopBackOff en sık görülen sorunlu durumlardır.kubectl describe pod ADIile olaylar bölümünü okuyun. İmaj bulunamadı, kaynak yetmedi gibi nedenler orada yazar.kubectl logs ADIile uygulamanın kendi hata çıktısını okuyun.- Gerekirse kaynakları kontrol edin. Düğümde bellek ya da CPU yoksa pod başlayamaz.
Örneğin ImagePullBackOff genellikle imaj adının yanlış yazıldığını ya da özel bir depoya erişim izni olmadığını gösterir. Pending durumu ise çoğunlukla kaynak eksikliğine işaret eder.
Sorunun kaynağı çoğu zaman uygulamanın kendisidir, Kubernetes değildir. Örneğin yanlış bir ortam değişkeni uygulamayı başlatmaya engel olabilir. Bu nedenle önce günlüğü okumak, tahmin yürütmekten daha hızlı sonuç verir.
Hâlâ çözemediyseniz hata mesajını kopyalayıp resmi dokümanda arayın. Hata mesajlarını paylaşırken kubeconfig, parola ve gerçek alan adlarınızı gizleyin.
Kubernetes güvenliği için neye dikkat etmelisiniz?
Kubernetes API sunucusu, kümenin kapısıdır. k3s resmi gereksinimlerinde 6443/TCP portu API sunucusu için listeleniyor. Bu portu tüm internete açmak ciddi risk oluşturur. Mümkünse yalnızca kendi IP adresinize ya da bir VPN'e açın.
Ağ tarafında dokümandaki uyarıyı da not edin. Flannel VXLAN için kullanılan 8472/UDP portunu kısıtlamazsanız küme ağına herkes erişebilir. Resmi sayfa güvenlik duvarı açıksa gerekli kuralları ayrıca açmanızı söylüyor.
Uygulama tarafında da birkaç alışkanlık fark yaratır. Güvenilir kaynaklardan imaj çekin, imaj etiketlerini sabitleyin ve parolaları YAML içine yazmayın. Sunucu tarafında Fail2ban ile sunucu güvenliği ve CSF güvenlik duvarı rehberimiz işinize yarar.
- 6443 portunu herkese açmayın; IP ile sınırlayın.
- Kubeconfig dosyasını parola gibi koruyun.
- İmaj etiketlerini sabitleyin ve güvenilir kaynak kullanın.
- Sistem ve küme güncellemelerini düzenli takip edin.
- Uygulamanız web güvenliği riski taşıyorsa OWASP Top 10 listesini gözden geçirin.
Kaynak tüketimi ve maliyet konusunda ne bilmelisiniz?
Kubernetes kendi bileşenleri için bile bellek ve işlemci harcar. Resmi rakamlar bunu gösteriyor: minikube 2 GB boş bellek, k3s sunucu düğümü 2 GB RAM istiyor. Küçük bir VPS'te kümeyi çalıştırdıktan sonra uygulamanıza az yer kalabilir.
Bu yüzden pod tanımlarında kaynak isteği ve sınırı belirtmek önemlidir. Yukarıdaki örnekte requests ve limits alanlarını bunun için ekledik. Sınır koymazsanız tek bir pod tüm belleği yiyip diğerlerini düşürebilir.
Maliyet tarafında üç kalem vardır: sunucu kirası, bakım zamanı ve hata riski. Çoğu küçük işletme için zaman ve risk kalemi sunucu kirasından büyüktür. Ayrıca site hızınız sunucunun gerçekten yeterli olup olmadığına bağlıdır; ayrıntı için site hızının SEO'ya etkisi yazımıza bakın.
Örnek hesap (varsayımsal): Sunucunuzda 4 GB RAM varsa, 2 GB'ı küme bileşenleri için ayırdığınızda uygulamalara yaklaşık 2 GB kalır. Bu hesap, gerçek tüketimi ölçmeden karar vermemeniz gerektiğini gösterir. Ayrıca bellek sınırını çok düşük koyarsanız uygulama sık sık yeniden başlar; bu yüzden değerleri izleyerek ayarlayın.
Kubernetes'i ne zaman kendiniz kurmamalı, hosting sağlayıcınıza bırakmalısınız?
Dürüst cevap şudur: Altyapıyı işletmek bizim işimiz değil, dijital pazarlama ve web geliştirme ile ilgileniyoruz. Bu nedenle size şu sınırı öneriyoruz. Gelir getiren bir mağazanın ya da müşteri verisi tutan bir sistemin kümesini ilk kez kendiniz kurup tek başınıza işletmeyin.
Üretim ortamında yedekleme, güncelleme, izleme ve güvenlik yamaları sürekli iş gerektirir. Bunlara zaman ayıramıyorsanız yönetilen bir Kubernetes hizmeti ya da barındırma sağlayıcınızın destekli çözümü daha güvenlidir. Sağlayıcı seçerken hosting seçim rehberimizdeki kriterleri kullanın.
- Canlı mağaza veya ödeme alan sistem: yönetilen hizmet ya da sağlayıcı desteği.
- Müşteri verisi ve KVKK yükümlülüğü: uzman desteği alın.
- Sunucuyu izleyecek kimse yoksa: kendi kümenizi kurmayın.
- Öğrenme ve geçici test: minikube ya da tek VPS'te k3s uygundur.
Alan adı, DNS ve SSL tarafını kontrol etmek için ücretsiz DNS sorgulama ve SSL sorgulama araçlarımızı kullanabilirsiniz.
Küme kurduktan sonra hangi iyi alışkanlıkları edinmelisiniz?
Küme çalışmaya başlayınca asıl iş başlar. İlk alışkanlık, tüm YAML dosyalarını bir sürüm kontrol sistemine koymaktır. Böylece hangi değişikliği ne zaman yaptığınızı görür, gerekirse eski haline dönersiniz. Git komutlarını hatırlamak için Git ve GitHub temel komutlar rehberimize göz atın.
İkinci alışkanlık, kaynakları namespace'lerle ayırmaktır. Deneme, test ve canlı işleri aynı namespace'te tutarsanız yanlışlıkla yanlış kaynağı silebilirsiniz. Üçüncüsü, her Deployment için kaynak isteği ve sınırı yazmaktır.
Dördüncü alışkanlık düzenli yedektir. Pod'lar silinebilir ama kalıcı veri silinmemelidir. Veritabanı gibi durumlu uygulamalarda yedeksiz ilerlemek büyük risktir. Ayrıca kümeyi güncellerken önce bir deneme ortamında denemeniz gerekir.
- YAML dosyalarını sürüm kontrolünde tutun.
- Deneme ve canlı işleri ayrı namespace'lere koyun.
- Her pod için kaynak isteği ve sınırı yazın.
- Yedeği düzenli alın ve geri yüklemeyi deneyin.
- Güncellemeleri önce deneme ortamında sınayın.
Kümeyi nasıl temizler ve kaldırırsınız?
Denemeniz bittiyse kümeyi kaldırmak hem bellek hem güvenlik açısından iyidir. Açık bırakılan bir küme, unutulmuş bir kapı gibidir. Minikube'de temizlik basittir.
minikube stopminikube delete --allk3s'te kurulum betiği, kaldırma betiğini de beraberinde getirir. Resmi hızlı başlangıç sayfasında k3s-uninstall.sh adı geçiyor. Betiği sunucudan çalıştırmadan önce kümedeki verilerin yedeğini aldığınızdan emin olun.
sudo k3s-uninstall.shAyrıca güvenlik duvarında açtığınız portları kapatmayı unutmayın. NodePort için açtığınız kuralı kaldırın ve kubeconfig kopyalarını silin. Böylece geride açık kapı bırakmazsınız.
Sonraki adım ne olmalı?
Bir küme kurmak yolun başıdır. Kubernetes nasıl kurulur sorusunu yanıtlamış olsanız bile, kümeyi doğru işletmek ayrı bir beceridir. Bu beceriyi küçük adımlarla, önce yerelde geliştirmeniz gerekir. Sonraki adımda kendi uygulamanızı konteynere alıp Deployment ile çalıştırmayı deneyin. Ardından ortam değişkenleri, kalıcı disk ve ağ kuralları gibi konulara geçin.
Uygulamanız Node.js ise önce Node.js kurulumu ve uygulama deploy rehberimizi inceleyin. Kubernetes'e geçmeden önce basit yöntemin size yetip yetmediğini görürsünüz.
Kubernetes nasıl kurulur sorusunun asıl cevabı, önce hedefi seçmektir. Hedef öğrenmekse minikube, küçük bir sürekli ortamsa k3s, kritik bir sistemse yönetilen hizmet doğru başlangıçtır.
Altyapı kararı vermeden önce hedefinizi netleştirin. Biz web sitesi, SEO ve dijital pazarlama tarafında yardımcı oluyoruz; altyapı seçiminde ise güvenilir bir hosting sağlayıcısıyla çalışmanızı öneririz. Resmi dokümanları takip edin, çünkü bu araçlar hızla değişir.



