k8s etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
k8s etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Kubectl Örnek Deployment

En çok kullanılan kubectl komutları ve örnek bir deployment nasıl yapılır adım adım bakalım.


--kubectl yapısı

kubectl [command] [type] [name] [flags]

--podları gösterir

kubectl get pods

--deploymentları gösterir

kubectl get deployment

--my-service adındaki service'e dair bilgileri gösterir

kubectl get service my-service

--nginx imageını kullaranara nginx adında deployment oluşturur

kubectl create deployment nginx --image=nginx

--yaml manifesto ile deploymet oluşturulur

kubectl apply -f nginx.yaml

--nginx adındaki deployment'a dair tanımlamaları gösterir

kubectl describe deployment nginx

--nginx adında deploymentı siler

kubectl delete deployment nginx

--mevcut contexti gösterir

kubectl config get-context

--başka bir contexe geçilir

kubectl config use another-cluster-context


--kubectl versiyonunu gösterir

kubectl version

--component status yani etcd scheduler ve controller manager'ın health statusunu gösterir

kubectl get cs


--belirtilen image'ı kullanarak 8080 port üzerinden hello-k8s adında bir deployment çalıştırıyoruz

kubectl run hello-k8s --image=gcr.io/google_containers/echoserver:1.4 --port=8080

--deploymenta bakalım (eğer replica verilmezse 1 adet oluşturur)

kubectl get deployments

--hello-k8s adındaki deployment'ı NodePort tipinde expose et yani servise oluştur. otomatik bir port 31181 gibi bir port atayacak

kubectl expose deployment hello-k8s --type=NodePort

--şimdi de oluşturulan bu servise bakalım

kubectl get services

--hello-k8s-555c87cddd-5wvxt podunun 31181 portuna (cluster port) gelen istekler node'un 8080 portuna yönleniyordu.

--dışarıdan yani kubernetesin dışından direkt 8080 ile erişilmesi için port yönlendirme yapmamız gerekiyor

kubectl port-forward hello-k8s-555c87cddd-5wvxt 8080:8080

--port forwarding durdurulunca 8080 çalışmayacak ve yine kubernetesin kendi portu 31181 üzerinden hizmet vermeye devam edecek

--iş yükümüz arttı ve artık bize 1 pod yetmiyorsa 2 poda çıkarmak istiyorsak scale ile replicas=2 yapmalıyız

kubectl scale deployment.v1.apps/hello-k8s  --replicas=2

--tekrar podlara baktığımızda artık hello-k8s deployment için 1 değil 2 pod olduğunu göreceğiz

kubectl get pods

--herhangi bir nedenden podlardan birinin düştüğü ve işlevini yerine getiremediği durumda kubernetes replicas=2 olduğu için otomatik olarak sürekli arzu edilen 2 pod olması için için yeniden pod oluşturacaktır.

--şimdi manuel olarak bir podu silelim

kubectl delete pod hello-k8s-555c87cddd-f8j7

--tekrar podlara bakalım ve başka bir name ile pod oluşturduğunu ve 2 pod olduğunu görelim

kubectl get pods

--deployment üzerinden de replica(pod) sayısını görebiliriz

kubectl get deployments

--contextleri gösterir

kubectl config get-contexts

--docker-for-desktop olan contexe geçer

kubectl config use-context docker-for-desktop

spacer