Identifying App Dependencies in Kubernetes

2/24/2021

One of the GKE cluster is used a shared cluster and hosts multiple line of business applications.

These line of business apps, written in different languages (C#, go, ruby, java),

  • Interact with each other (but don't use mesh technology). Example: App1 gives a REST API call to APIs hosted in App2 (in different namespace)
  • Interact with other PaaS services in Google Cloud. Example, App1 interacts with Cache, DNS, and PostgreSQL; whereas App2 hosts data in MongoDB Atlas and leverages Redis Cache

One of the ways to identify dependencies of each app is to look at ConfigMap or Helm Charts (apart from application configuration) to identify external app/service dependencies. This will be time taking exercise.

Is there any tool that can help discover these app dependencies in an automated way?

-- GeekzSG
google-cloud-platform
google-kubernetes-engine
kubernetes

1 Answer

2/24/2021

What kind of dependencies do you exactly mean ? Kubernetes doesn't care about the content of the containers it runs or their codebase or their logic. It works as a container orchestrator only. It's a job for CI/CD process to take care about dependencies or package manager, like helm.

Kubernetes may provide some features, like initContainers that would check availability of the certain service in the cluster before starting another one, dependant on them, but it's up to the administrator or app developer to design them.

-- mario
Source: StackOverflow