Deploying on K8S
Using Kubernetes technology provides us with some features that distinct it from other type of deployments. These are the main features:
- Service discovery and load balancing. See Installing MetaDefender Core in K8S
- Storage orchestration. Allows you to automatically mount a storage system. See Storage Configuration on K8S
- Automated rollouts and rollbacks. See Upgrade/Deployment Strategy on K8S
- Automatic bin packing. You tell Kubernetes how much CPU and memory (RAM) each container needs.
- Self-healing. Kubernetes restarts containers that fail, replaces containers, kills containers that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve. Se Kubernetes Probes explained below
- Secret and configuration management. Kubernetes lets you store and manage sensitive information. See Kubernetes Components
- Horizontal scaling. Scale your application up and down. See Scaling K8S Cluster
There are recommended configuration for each of the features to use by default when deploying MetaDefender Core in a Kubernetes cluster.
Kubernetes Probes
The Kubernetes probes are needed to control the correct behavior of the application on this environment. Each probe need to use the health check endpoint GET - Get health check statusAPI (/readyz)
- Readiness Probe ( Check /readyz endpoint to know if the Health Check is OK ) - initialDelaySeconds= 60
- periodSeconds= 10
- successThreshold= 1
- timeoutSeconds= 10
 
- Liveness Probe ( Check /readyz endpoint to know if the Health Check is OK after Pod is ready) - initialDelaySeconds= 90
- timeoutSeconds= 10
- periodSeconds= 10
- failureThreshold= 3
 

