Skip to main content

Multi Region Cluster Deployment

Name implies, Services are deployed in two different regions controlled by a Load Balancer or Traffic Manager.

In GDA, We have 2 Clusters. (North Europe and West Europe). This sections deals with how to implement it in the SMDS API’s.

Perpetual team suggest wither Akamai GTM or Azure TM for traffic Routing. In SMDS we implement Azure TM.

For all Multiregion deployments, An additional ingress is required to configure the Traffic Managers.

Configure Two Ingresses on Each Cluster, one for GTM/ATM to call and one to handle the CNAME

In Simple :

  1. To Implement the Azure TM, Create one more ingress to handle the ATM DNS Config.
  2. The additional ingress will act as DNS for CNAME to the Azure TM and route the traffic to backend service.
  3. The additional Ingress configuration should be same in both Clusters.Bel

Below are the 2 Ingress which handles the CNAME and backend Service Route .

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: external-dns.alpha.kubernetes.io/target: smds-opsmdm-facility-search-cdt-tm.trafficmanager.net nginx.ingress.kubernetes.io/cors-allow-credentials: "true" nginx.ingress.kubernetes.io/cors-allow-headers: Consumer-Key, Authorization, ApiAuthorization, Ocp-Apim-Subscription-Key, Content-Type, Content-Disposition nginx.ingress.kubernetes.io/cors-allow-methods: PUT, GET, POST, DELETE, OPTIONS, PATCH nginx.ingress.kubernetes.io/cors-allow-origin: '*' nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/global-rate-limit: "10000" nginx.ingress.kubernetes.io/global-rate-limit-window: 1m nginx.ingress.kubernetes.io/proxy-body-size: 10m nginx.ingress.kubernetes.io/proxy-connect-timeout: "300" nginx.ingress.kubernetes.io/proxy-read-timeout: "300" nginx.ingress.kubernetes.io/service-upstream: "true" nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0 labels: app: smds-opsmdm-facility-search-cdt env: cdt region: ne01 name: smds-opsmdm-facility-search-ingress-atm-cdt namespace: opsmdm-cdt spec: ingressClassName: nginx-sm rules:

  • host: smds-opsmdm-facility-search-cdt-app.maersk-digital.net http: paths:
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: / pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /swagger-ui/ pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /v3/api-docs/ pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /actuator/health pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /actuator/prometheus pathType: Prefix tls:
  • hosts:

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/cors-allow-credentials: "true" nginx.ingress.kubernetes.io/cors-allow-headers: Consumer-Key, Authorization, ApiAuthorization, Ocp-Apim-Subscription-Key, Content-Type, Content-Disposition nginx.ingress.kubernetes.io/cors-allow-methods: PUT, GET, POST, DELETE, OPTIONS, PATCH nginx.ingress.kubernetes.io/cors-allow-origin: '*' nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/global-rate-limit: "10000" nginx.ingress.kubernetes.io/global-rate-limit-window: 1m nginx.ingress.kubernetes.io/proxy-body-size: 10m nginx.ingress.kubernetes.io/proxy-connect-timeout: "300" nginx.ingress.kubernetes.io/proxy-read-timeout: "300" nginx.ingress.kubernetes.io/service-upstream: "true" nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0 labels: app: smds-opsmdm-facility-search-cdt env: cdt region: ne01 name: smds-opsmdm-facility-search-ingress-cdt namespace: opsmdm-cdt spec: ingressClassName: nginx-sm rules:

  • host: smds-opsmdm-facility-search-cdt-ne01.maersk-digital.net http: paths:
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: / pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /swagger-ui/ pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /v3/api-docs/ pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /actuator/health pathType: Prefix
    • backend: service: name: smds-opsmdm-facility-search-service-cdt port: number: 8080 path: /actuator/prometheus pathType: Prefix tls:
  • hosts:
Was this page helpful?