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)
-
Uygulamayı geliştir, container haline dönüştür
-
YAML veya JSON olarak "deployment" objesi yarat (manifest)
- 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