É muito comum, e altamente recomendável, que em um cenário de desenvolvimento de uma aplicação tenhamos vários ambientes. Falando em boas práticas, para uma arquitetura mínima teremos um ambiente de desenvolvimento e um ambiente separado para produção. Ainda podemos ter, entre estes dois, outros ambientes como: ambiente de testes, ambiente de pré-produção, entre outros, dependendo da necessidade do projeto.
Em termos de configuração de hardware e também em termos de software, as boas praticas pedem para que todos os ambientes sejam exatamente iguais. Nesse caso o que difere um ambiente do outro são os dados, mais precisamente os dados sensíveis.
O kubernetes nos oferece recursos para gerenciar o que chamamos de variáveis de ambiente. Através de variáveis de ambiente podemos enviar informações para dentro de nossa aplicação em tempo de definição de ambiente, sem necessidade de alterar o código-fonte.
Variáveis de ambiente são utilizadas para: