Kubernete Deployment Hazırlama
Kubernete ile deployment nasıl yapılır temel olarak bir uygulama yapacağız. İlk adım olarak öncelikle deploy edeceğimiz uygulamayı tanımak ve belkide hakim olmak yerine göre önem arzetmektedir, ben basit olması sebebiyle nginx tercih ettim sadece boş bir nginx server ayağa kaldıracağız uygulama eklemeyeceğiz belki daha sonra başka bir dökümanda deploy aşamasını yer verebilirim buyrun başlayalım.
Deployment için öncelikle bir yaml hazırlıyoruz ve bu hazırladığımız yaml dosyalarını git gibi bir konumda saklamanızı öneririm bunun size öncelikil 2 faydası olacaktır
- konfigurasyon dosyasnızın verisonlarını takip edebilirsiniz.
- tekrardan sileceğiniz veya değşiklik yapacağınız zaman elinizin altında konfigurasyon dosyanız hazır oalcaktır sadece değişikliği yapıp apply etmeniz yeterli olacaktır.
playground isminde bir namespace oluşturuyoruz.
kubectl create ns playground
nginx yaml dosyası bu kısımda bir deployment olacak birde bu deployment a erişim için tanımlayacağımız ip ve gerekirse önünde loadbalancer işini görecek servis katmanını tanımlaması yapacağız. aşağıdaki yaml dosyasını kendinize göre ayarlayıp bi isim verin örnek nginx.yaml gibi.
apiVersion: apps/v1beta2 # version bildirimi
kind: Deployment # deploy edilecek nesne tipi
metadata:
namespace: playground # namespace
name: nginx-app # uygulama adı
spec:
selector:
matchLabels:
app: myapp # daha kolay seçim için label ekleme bu şekilde istediğimiz obje veya deploymentları gruplayabiliriz.
replicas: 1 # replica sayısı
template:
metadata:
labels:
app: myapp # label
spec:
containers:
- name: nginx # deployment ismi
image: nginx:1.14.2 # kullanılacak docker image
ports:
- containerPort: 80 # containerda çalışacak port
name: nginx-port # port adı
---
kind: Service
apiVersion: v1
metadata:
name: app
namespace: playground
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80 # uygulammızın çalışacağı port
name: nginx-port
targetPort: nginx-port # yukarıda tanımladığımız portadına yönlendirme işlemini yapıyoruz.
aşağıdaki şekilde apply ediyoruz
kubectl apply -f nginx.yaml
şimdi durumu kontrol ediyoruz
kubectl -n playground get all
aşağıdaki şekilde çıktı vermeli
NAME READY STATUS RESTARTS AGE
pod/nginx-app-746d97db4d-cpczr 1/1 Running 0 5s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/app ClusterIP 10.98.63.85 <none> 80/TCP 5s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nginx-app 1/1 1 1 5s
NAME DESIRED CURRENT READY AGE
replicaset.apps/nginx-app-746d97db4d 1 1 1 5s
burada deployment.
şeklinde başlayan bizim yaptığımız deployment configurasyonu pod/
şeklinde başlayan bu konfigurasyona göre çalışmış olan instance service/
şeklinde başlayan ise service configurasyonumuza göre çalışmış olan service nesnesidir. replicaset.
şeklinde başlayanise git benzeri burada tutulan geçmiş konfigurasyon bilgisidir şuan ilk uygulamamız olduğunda ilk versiyonu var bunlar arasında geçiş yapılaiblir.
buradaki kubernete ipsine erişim olan bir makinadan service karşısında görülen 10.98.63.85 ip adresine istek yaptığınızda nginx sayfasını göreceksiniz.
Katkılar için Kazım Sarıkaya’ya Teşekkürler