Ana içeriğe geç

Healthcheck ve Sürüm Adresleri

Genel Yaklaşım

Apinizer modüllerinin healthcheck ve sürüm kontrollerini iki ana yöntemle gerçekleştirebilirsiniz:

Küme içindeki bir pod üzerinden curl komutu kullanarak dahili servis isimleri aracılığıyla istek atarak gerçekleştirilir. Bu yöntem, cluster içi iletişim problemlerini teşhis etmek için idealdir.

Kubernetes İçinden Kontroller

Bu yöntem ile Apinizer modüllerinin Kubernetes kümesi içindeki dahili ağ üzerinden erişilebilirliğini ve durumunu kontrol edebilirsiniz.

Pod'lar ve Durumları

Kümedeki tüm Pod'ları ve onların durumlarını kontrol edin:

kubectl get pods -A

Bu komut sisteminizdeki bütün pod'ların çıktısını verir. Aşağıdaki örnekte tüm pod'lar sağlıklı bir şekilde çalışmaktadır:

Kubernetes Pod Durumları
bilgi

Çıktıda, tüm Pod'ların Running (Çalışıyor) durumda olduğunu ve READY (Hazır) sütununun 1/1 olduğunu görebilirsiniz. Bu durum pod'ların sağlıklı olduğunu gösterir.

Servis Bilgileri

Pod'lar arasındaki iletişimi sağlayan Servislerin bilgilerini kontrol edin:

kubectl get svc -A

Örnek çıktı:

Kubernetes Servis Durumları

Aşağıdaki tabloda Apinizer modüllerinin servis bilgileri verilmiştir:

ModülServis AdıServis TürüNamespaceInternal PortExternal Port (Dışarıya Açılan)
ManagermanagerNodePortapinizer808032080
Workerworker-http-serviceNodePortprod809130080
Cachecache-http-serviceClusterIpprod8090-
Integrationintegration-http-serviceNodePortapinizer-integration809230088
Portalapinizer-portal-serviceNodePortapinizer-portal808032090

Bu bilgiler ışığında aşağıdaki şablonda URL'ler oluşturulabilir ve bu URL'lere Kubernetes içindeki herhangi bir pod üzerinden curl atılarak kontrol edilebilir:

http://<SERVICE_NAME>.<NAMESPACE>.svc.cluster.local:<SERVICE_INTERNAL_PORT>/apinizer/management/health

Modül Bazlı Kontroller

Manager

Healthcheck:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://manager.apinizer.svc.cluster.local:8080/apinizer/management/health

Sürüm Bilgisi:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://manager.apinizer.svc.cluster.local:8080/apinizer/management/version
Worker

Healthcheck:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://worker-http-service.prod.svc.cluster.local:8091/apinizer/management/health

Sürüm Bilgisi:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://worker-http-service.prod.svc.cluster.local:8091/apinizer/management/version
Cache

Healthcheck:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://cache-http-service.prod.svc.cluster.local:8090/apinizer/management/health

Sürüm Bilgisi:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://cache-http-service.prod.svc.cluster.local:8090/apinizer/management/version
Integration

Healthcheck:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://integration-http-service.apinizer-integration.svc.cluster.local:8092/apinizer/management/health

Sürüm Bilgisi:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://integration-http-service.apinizer-integration.svc.cluster.local:8092/apinizer/management/version
Portal

Healthcheck:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://apinizer-portal-service.apinizer-portal.svc.cluster.local:8080/apinizer/management/health

Sürüm Bilgisi:

kubectl exec -it <any_pod_name> -n <namespace> -- curl -X GET http://apinizer-portal-service.apinizer-portal.svc.cluster.local:8080/apinizer/management/version

Kubernetes Dışından Kontroller

Eğer Apinizer modülleriniz Kubernetes dışından erişilebilir şekilde yapılandırılmışsa (örneğin NodePort, LoadBalancer tipi servisler veya bir Ingress Controller aracılığıyla), Postman gibi bir HTTP istemcisi veya yerel terminalinizden curl ile doğrudan istek gönderebilirsiniz.

Kubernetes Servis Durumları

Apinizer modüllerinin NodePort servis tipi ile dışarıya açılan servisleri için Kubernetes Node IP adresleri ve Node Portları aracılığıyla herhangi bir istemciden erişim sağlanabilmektedir. Aşağıdaki tablo, Apinizer servislerinin detaylarını sunmaktadır:

ModülServis AdıServis TürüNamespaceInternal PortExternal Port (Dışarıya Açılan)
ManagermanagerNodePortapinizer808032080
Workerworker-http-serviceNodePortprod809130080
Cachecache-http-serviceClusterIpprod8090-
Integrationintegration-http-serviceNodePortapinizer-integration809230088
Portalapinizer-portal-serviceNodePortapinizer-portal808032090

Modül Bazlı Kontroller

Manager

Healthcheck:

curl "http://<MANAGER_ACCESS_URL>/apinizer/management/health"

Sürüm Bilgisi:

curl "http://<MANAGER_ACCESS_URL>/apinizer/management/version"
Worker

Healthcheck:

curl "http://<WORKER_ACCESS_URL>/apinizer/management/health"

Sürüm Bilgisi:

curl "http://<WORKER_ACCESS_URL>/apinizer/management/version"
Integration

Healthcheck:

curl "http://<INTEGRATION_ACCESS_URL>/apinizer/management/health"

Sürüm Bilgisi:

curl "http://<INTEGRATION_ACCESS_URL>/apinizer/management/version"
Portal

Healthcheck:

curl "http://<PORTAL_ACCESS_URL>/apinizer/management/health"

Sürüm Bilgisi:

curl "http://<PORTAL_ACCESS_URL>/apinizer/management/version"
uyarı

Cache Modülü: Cache modülü varsayılan olarak kurulumlarda dışarıya açılmamaktadır (ClusterIP servis türü). Bu nedenle, Kubernetes dışından doğrudan health-check ve version-check yapmak istiyorsanız, Cache servisinin 8090 numaralı portunun dışarıya erişilebilir şekilde yapılandırılması gerekmektedir.