
Kubernetes deployment using Skaffold, Kustomize and Kaniko.
These tools were used as an alternative of Helm charts for Kubernetes deployment to provide profile-based deployment strategy.
Series: AWS Platform Engineering (19 articles)
- …
- 3Kubernetes deployment using Skaffold, Kustomize and Kaniko. This article
Hello ALL...My new write up about my implementation experience of container deployment in Kubernetes EKS clusters using tools - Kaniko, Kustomize and Skaffold which was used as an alternative of Helm charts for Kubernetes deployment for multiple global clients.
These tools provide profile-based deployment strategy where we can customize specific deployment parameters for different environments like DEV, TEST, PRE-PROD and PROD.
Also, we can build FinOps customization strategies using these tools based on our business needs. I am providing a brief summary for exploration of these tools for your use cases.
Skaffold
Skaffold is a tool used to deploy in Kubernetes based on a specific profile of the deployments. For a deployment we can create multiple profile based on environment or use case.
In each profile we can specify different compute, memory or other specifications for efficiency.
While running skaffold tool or deployment we can specific the profile to deployment accordingly deployment happens.
In skaffold.yaml we will specify the details of deployment for each profile.
Kustomize
The deployment files for the profile are handled using Kustomize effectively.
Kustomize has feature to maintain main deployment file and overlay deployment files. During deployment it will merge overlay file with main file and use the merged deployment files. These specifications are maintained in Kustomization.yaml file.
Skaffold and Kustomize can be used for deployments of SAAS products efficiently.
Kaniko
However, we had one issue with Kustomize. It required Docker daemon access. Due to this we had to setup a custom agent for running this deployment as automation pipeline in Jenkins.
This was overcome by using Kaniko tool which was not requiring access to Docker Daemon. However, we still continued to manage the Kubernetes deployment files version for skaffold profile using Kustomize tool. Also, we continued to use Skaffold for Deployment in Kubernetes.
This approach helped us with seamless CICD Kubernetes deployment workflow using EKS with security in AWS Platforms.
What we achieved with this approach?
- We can customize different profile of Kubernetes deployments for different environment like memory, cpu usage, replicas etc.
- We can ensure to scale down the resources during weekend regularly without code changes every week. we can create a profile and deploy that profile in Kubernetes EKS Clusters.
- We can ensure specific deployment configuration in specific regions using this approach.
Series: AWS Platform Engineering (19 articles)
- …
- 3Kubernetes deployment using Skaffold, Kustomize and Kaniko. This article
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article