Microservices & Kubernetes

Volkan ŞENGÜL

@volkansengul

iletisim@volkansengul.com

Kubernetes nedir?

  • Container karmaşasının yönetilmesi
  • Container'lar üzerinde çalışan microservice tabanlı uygulamaların orkestrasyonu
  • Google tarafından ortaya konulan bir teknoloji
  • CNCF'e bağışlanarak açık kaynak kodlu hale gelmesi (2014)
  • Go/Golang ile yazıldı

Mimari ( Master & Node )

  • Bir Master (Control Plane) - Birçok Node (Worker)
  • İdeal :
  • Uygulamamızı paketleyip K8S cluster'ına teslim ederiz ( master & node'lar)
  1. Uygulamayı geliştir, container haline dönüştür
     
  2. YAML veya JSON olarak "deployment" objesi yarat (manifest)
     
  3. Yaratılan dosyayı K8S api-server'a gönder

Master (Control Plane)

kube-api-server

cluster store (etcd)

kube-controller-manager

kube-scheduler

Node (Worker)

kubelet

container engine

kube-proxy

POD

  • Docker için Container ne ise Kubernetes için Pod odur
  • Kubernetes Pod'ların içinde Container'lar çalışır
  • Kubernetes için ölçekleme birimi Pod'dur

1 Pod birden fazla K8S node'u üzerine deploy edilemez, genişleyemez

Pod'lar doğar yaşar ve ölürler

Deployment

  • Saf REST objeleridir
  • Versiyonlanabilir
  • YAML yada JSON dosyaları içinde tanımlanır
  • Bir kere hazırlanıp birden fazla ortama birden fazla kez deploy edilebilirler
  • Yaratılmaları api-server üzerinden gerçekleşir
  • Replication controller nesnelerine yeni özellikler kazandırmaya yararlar

Service

  • Pod'ların kendine has IP adresleri olabilir
  • Her zaman POD IP'lerini doğrudan kullanamayabiliriz
  • Sabit IP ve DNS özelliği 
  • Load balancing görevini yerine getirirler
  • Default olarak TCP üzerinde çalışır
  • Sadece sağlıklı (healthy) POD'lara trafiği yönlendirir

Teşekkürler

Volkan ŞENGÜL

@volkansengul

iletisim@volkansengul.com

Microservices & Kubernetes

By Volkan Şengül

Microservices & Kubernetes

  • 192