Ana içeriğe atla

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ı
Çı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

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
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
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
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
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

Healthcheck:
curl "http://<MANAGER_ACCESS_URL>/apinizer/management/health"
Sürüm Bilgisi:
curl "http://<MANAGER_ACCESS_URL>/apinizer/management/version"
Healthcheck:
curl "http://<WORKER_ACCESS_URL>/apinizer/management/health"
Sürüm Bilgisi:
curl "http://<WORKER_ACCESS_URL>/apinizer/management/version"
Healthcheck:
curl "http://<INTEGRATION_ACCESS_URL>/apinizer/management/health"
Sürüm Bilgisi:
curl "http://<INTEGRATION_ACCESS_URL>/apinizer/management/version"
Healthcheck:
curl "http://<PORTAL_ACCESS_URL>/apinizer/management/health"
Sürüm Bilgisi:
curl "http://<PORTAL_ACCESS_URL>/apinizer/management/version"
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.