...
I det enklaste fallet är det en statisk lista med URL:er som anropas i angiven följd vid “reset cache”. I en Kubernetes-installation finns även möjlighet att dynamiskt slå upp vilka poddar som är aktiva med hjälp av Kubernetes API.
Installation
Tjänsten är levereras som en Tomcat-applikation ( war-fil ) och kan installeras i t.ex. Tomcat på liknande sätt som tak-web och tak-services.
Exempel på paketering med Dockerfile samt Helm chart finns med i källkoden.
Konfiguration
Tjänsten bygger på Spring Boot och stödjer dess olika format för konfiguration. Nedan följer två exempel, med fil respektive miljövariabler.
Info |
---|
Reset sker i den ordning som anges i listan. Det är viktigt att alla instanser av tak-services anges i början av listan då dessa påverkar övriga komponenter. |
Statisk konfiguration med fil
Följande rader kan läggas till i den gemensamma filen tak-application.properties, SKLTP TAK - Konfiguration
...
…- version 3.0 och senare). Genom att den gemensamma filen återanvänds databas-konfigurationen.
Kodblock | ||
---|---|---|
| ||
# Poll interval in ms (default value)
tak.monitor.interval=60000
# Delay before first poll in ms (default value)
tak.monitor.initial-delay=0
# No pod lookup (default value)
tak.monitor.reset.use-pod-lookup=false
# List of static reset URLs
tak.monitor.reset.nodes[0].url=http://tomcat1.example.com:8080/tak-services/reset/pv
tak.monitor.reset.nodes[1].url=http://tomcat2.example.com:8080/tak-services/reset/pv
tak.monitor.reset.nodes[2].url=http://vp1.example.com:23000/resetcache
tak.monitor.reset.nodes[3].url=http://vp2.example.com:23000/resetcache
tak.monitor.reset.nodes[4].url=http://server.example.com:8082/kat/resetcache |
Pod-uppslagning i Kubernetes
Exempel på hur konfiguration kan anges i en Kubernetes ConfigMap för användning som miljövariabler. Notera att databas-lösenord även behöver anges via en secret eller motsvarande.
I denna konfiguration hämtas aktiva poddar med sökning i Kubernetes API (på label selector+namespace). URL:erna skapas sedan genom att “0.0.0.0“ ersätts med IP-adressen för varje pod.
Kodblock | ||
---|---|---|
| ||
apiVersion: v1
kind: ConfigMap
metadata:
name: tak-monitor-configmap
data:
# Database settings
SPRING_DATASOURCE_DRIVERCLASSNAME: com.mysql.cj.jdbc.Driver
SPRING_DATASOURCE_URL: jdbc:mysql://mysql-host:3306/takv3?autoReconnect=true
# Activate pod lookup
TAK_MONITOR_RESET_USEPODLOOKUP: "true"
TAK_MONITOR_RESET_PODNAMESPACE: skltp-default
# List of applications, identified by label selectors
# "0.0.0.0" is used as a placeholder for pod ip
TAK_MONITOR_RESET_NODES_0_LABEL: app.kubernetes.io/name=tak-services
TAK_MONITOR_RESET_NODES_0_URL: http://0.0.0.0:8080/tak-services/reset/pv
TAK_MONITOR_RESET_NODES_1_LABEL: app=vp
TAK_MONITOR_RESET_NODES_1_URL: http://0.0.0.0:23000/resetcache
TAK_MONITOR_RESET_NODES_2_LABEL: app.kubernetes.io/name=kat-application
TAK_MONITOR_RESET_NODES_2_URL: http://0.0.0.0:8082/kat/resetcache |