Diğer herhangi bir Kubernetes kümesine dağıtım yapmak gibi, bir uygulamayı Kubernetes’te dağıtmak için de bir dağıtım nesnesine ihtiyacınız vardır. Bu uygulama için, basit bir NodeJS uygulama imajı kullanarak uygulamaya yönelik bir servis ve deploy çıkışı yapalim.
Azure CLI ile Clusterimize bağlanıp geçerli dizinde işleme başliyoruz.
1. Geçerli dizininizde, dağıtım için app-deployment.yaml adında bir YAML dosyası oluşturun ve aşağıdaki kodu ekleyelim
apiVersion: apps/v1
kind: Deployment # Kubernetes object type
metadata:
name: app-deployment # Deploymnent name
labels:
app: nodeapp
spec:
replicas: 2 # Number of matching pod replicas to be created by the deployment
selector:
matchLabels: # Should match labels set on the pod
app: nodeapp
template: # Pod configuration
metadata:
labels:
app: nodeapp # Label set on pod
spec:
containers:
- name: nodeapp
image: goodiec/nodeapp:v1 # The container the pod will run
imagePullPolicy: Always # Always pull image from the repository
ports:
- containerPort: 3000 # Port to reach app inside the container
2. Daha sonra, app-service.yaml adında başka bir YAML dosyası oluşturun ve servisi tanımlamak için aşağıdaki kodu ekleyin nodeapp
. olsun servis adı
apiVersion: v1
kind: Service # Kubernetes object type
metadata:
name: nodeapp # Service name
spec:
type: LoadBalancer # Utilizes the load balancer of a cloud provider to externally expose the Service.
selector:
app: nodeapp
ports:
- port: 80 # Service port
targetPort: 3000 # The app's port
nodePort: 30004 # Externak traffic port
3. kubectl apply
Daha sonra dağıtım ( app-deployment.yaml
) ve hizmet nesnelerini ( ) oluşturmak için aşağıdaki komutları çalıştırın app-service.yaml
.
kubectl apply -f app-deployment.yaml /
kubectl apply -f app-service.yaml
4. Şimdi, uygulamanızın çalıştığını ve internet üzerinden erişilebilir olduğunu doğrulamak için kubectl get
hizmet adını (nodeapp yapmıştık ) girerek aşağıdaki komutu çalıştırın .nodeappkubectl get service nodeapp
kubectl get service nodeapp
Başlangıçta, HARİCİ IP ‘beklemede’ durumunda olacaktır. Birkaç dakika bekleyin (servisin ayağa kalkmasi 1-2 dk sürebilir ve aynı komutu tekrar çalıştırınca ; aşağıda gösterildiği gibi HARİCİ IP adresini göreceksiniz .
Bir sonraki adımda uygulamaya erişmek için ihtiyacınız olacağından HARİCİ IP adresini not edin.
5. Son olarak uygulamaya erişmek için web tarayıcınızda HARİCİ IP’ye (20.102.16.9) gidelim
evet uygulamamiz deploy olmuş ve çalişir hale gelmiş web servisi cevap verir durumda
Normal K8s den bir farki yokmuş öyle değil mi ? pek zorlayici yanları yok helm chart ve benzeri appler de tıkır tıkır çalişiyor AKS normal kubernetin biraz daha yetişkin ve ne yaptiğini bilen hali diyebilirim.