Docker Desktop Üzerinde Kubernetes Kullanımı – Bölüm 1
  1. Anasayfa
  2. Container

Docker Desktop Üzerinde Kubernetes Kullanımı – Bölüm 1

0

Docker Desktop‘a gelen en büyük yeniliklerden birisi de tek node’dan oluşan bir Kubernetes cluster ile gelmesi. Böylece kendi ortamınızda test etmek istediğimiz Kubernetes işlemlerini ek bir kuruluma gerek kalmadan yapabiliyoruz. Varsayılan olarak kapalı geldiği için bu özelliği aktifleştirmek için Docker Desktop Settings ekranında en altta yer alan Kubernetes sekmesindeki (Resim-1) “Enable Kubernetes”i seçmek yeterli. Ek olarak docker stack komutları için Kubernetes’i varsayılan orchestrator olarak ayarlayabilir ve çalışan Kubernetes container’larının görünüp görünmemesini ayarlayabilirsiniz. Apply & Restart butonuna bastıktan sonra Kubernetes cluster çalışmaya başlayacak.

NOT: Eğer Kubernetes ile ilgili fazla bilgim yok diyorsanız devam etmeden önce Onur Yüksektepeli‘nin Kubernetes Nedir? makalesini okumanızı tavsiye ediyorum. Örnekte kullandığım Docker Desktop versiyonu 2.2.0.3 (42716).

Resim-1

Bu işlemi yaptıktan sonra ek olarak hangi container imajlarını kullandığını görmek için docker images komutunu çalıştırabilirsiniz (Resim-2).

Resim-2

Kubernetes çalışmaya başladığına göre artık kubectl komutunu kullanmaya da başlayabiliriz; kubectl get all komutu ile sistemdeki büyün kaynakları listeleyerek başlıyorum (Resim-3). Henüz bir deployment yapmadığımız için sadece Kubernetes servisi görünüyor.

Resim-3

Örnek olarak nginx container imajı kullanarak bir pod deploy etmek istiyorum. Bunun için Visual Studio Code kullanacağım. Resim-4‘te de göreceğiniz gibi Kubernetes eklentisini kuruyorum. Bu eklenti ile YAML eklentisi de kuruluyor.

Resim-4

Eklenti kurulumu sonrasında ise yeni bir dosya açıyorum, sağ altta tipini YAML olarak seçiyorum ve pod yazdığımda bana Kubernetes Pod seçeneğini çıkartıyor (Resim-5).

Resim-5

Tab’a bastığımda ise pod deployment yapmak için gerekli YAML dosyasını tamamlıyor (Resim-6). Burada sadece pod deploy edeceğimiz için service, deployment ve replicaset gibi diğer bileşenler olmayacak.

Resim-6

YAML üzerinde image seçeneğini nginx:latest ve containerPort seçeneğini de 80 olarak değiştirip nginx-pod.yml olarak dosyayı kaydediyorum (Resim-7).

Resim-7

Dosyayı kaydettiğim klasöre PowerShell üzerinden gelerek kubectl create -f .\nginx-pod.yml komutunu çalıştırıyorum (Resim-8). Sonrasında yine kubectl get all komutu ile kaynakları listelediğimde myapp isimli pod’un çalıştığını görebiliyorum. Pod çalışıyor ancak container’da yer alan uygulamanın (nginx) tam olarak çalıştığından emin olmak için ise tarayıcıdan localhost (80) denerseniz sayfa görüntülenemiyor mesajı alacaksınız. Bunun nedeni henüz port-forward yapmamış olmamız. Docker’da kullandığımız port mapping’e benzer şekilde kubectl port-forward pod/myapp 8080:80 komutu ile pod’un 80 portunu 8080 portuna forward ediyorum.

Resim-8

Tarayıcı üzerinden localhost:8080 yazdığımızda ise Kubernetes üzerinde çalışan nginx’e ulaşabiliyorum (Resim-9).

Resim-9

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.docker.com/docker-for-windows/kubernetes/

https://kubernetes.io/docs/reference/kubectl/

https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/

TAGs: Docker, Docker Desktop, Containers, Container, nginx, Kubernetes, k8s, kubectl, PowerShell, YAML, Visual Studio Code

Bu İçeriğe Tepkin Ne Oldu?
  • 5
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 2
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir