Pod¶
Podlar kubernetes'in en kucuk objesidir. Icerisinde bir veya birden fazla container barindirabilir.
- Ayni pod icindeki uygulamalar ayni networku kullanir. Dolasiyila butun uygulamalar ayni ip adresine sahip olur.
- Pod icerisindeki containerlar ayni depolama birimine baglanir.
Kaynak: Linuxfoundation
Podlar dogalari geregi kendi kendilerini onarma yetisine sahip degillerdir. Genelde daha buyuk olcekli kubernetes objeleri(controller) tarafindan olusturulurlar(Deployment, ReplicaSet, DaemonSet vs)
Asagidaki ornekte bir buyuk objeye bagimli olmadan bir pod nasil tanimlanir bunun ornegi mevcut:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
run: nginx-pod
spec:
containers:
- name: nginx-pod
image: nginx:1.22.1
ports:
- containerPort: 80
Bu yapi genel olarak butun kubernetes objeleri icin gecerlidir.
- pod deploy etmek icin apiVersion alaninin
v1olarak ayarlanmasi gerekmektedir. - kind alani olusturulacak objenin turunu belirtir.
v1apidenPodisimli nesneyi olusturuyoruz. -
metadata'da ise bu objenin metadatasi bulunur. isim ve label kullanilarak diger nesneler ile etkilesim saglanabilir.(Ingres yonlendirmesi vs)
-
spec alaninda ise pod'un icerisinde calismasi istenen containerin ozellikleri belirtilir. Birden fazla container
containersbasligi altina eklenebilir. Her bir containerin kendisine ozel olarak adı, dockerhub veya baska bir container registry üzerinden kullanacağı imajın ismi ve containerin kullandığı port buradan ayarlanır. Fakat burada belirtilen port disariya acilmaz. Disariya acmak icinserviceisimli k8s objesi gereklidir.