Understanding Environment Variables
TOC
OverviewCore ConceptsWhat are Environment Variables?Environment Variable Sources in KubernetesEnvironment Variable PrecedenceUse Cases and Scenarios1. Application Configuration2. Database Configuration3. Dynamic Runtime Information4. Environment-Specific ConfigurationCLI Examples and Practical UsageUsing kubectl runUsing kubectl createComplex Environment Variable ExamplesMicroservices with Service DiscoveryMulti-Container Pod with Shared ConfigurationBest Practices1. Security Best Practices2. Configuration Organization3. Environment Variable Naming4. Default Values and ValidationOverview
Environment variables in Kubernetes are key-value pairs that provide configuration data to containers at runtime. They offer a flexible and secure way to inject configuration information, secrets, and runtime parameters into your applications without modifying container images or application code.
Core Concepts
What are Environment Variables?
Environment variables are:
- Key-value pairs available to processes running inside containers
- Runtime configuration mechanism that doesn't require image rebuilds
- Standard way to pass configuration data to applications
- Accessible through standard operating system APIs in any programming language
Environment Variable Sources in Kubernetes
Kubernetes supports multiple sources for environment variables:
Environment Variable Precedence
Environment variables override configuration in this order:
- Kubernetes env (highest priority)
- Referenced ConfigMaps/Secrets
- Dockerfile ENV instructions
- Application default values (lowest priority)
Use Cases and Scenarios
1. Application Configuration
Basic application settings:
2. Database Configuration
Database connection settings using ConfigMaps and Secrets:
3. Dynamic Runtime Information
Access Pod and Node metadata:
4. Environment-Specific Configuration
Different configurations for different environments: