DevSecOps

13 set, 2017

Kubernetes – ConfigMap

Publicidade

Fala, pessoal!

Vamos continuar nossa série que fala sobre Kubernetes. Abaixo, coloquei a lista de posts criados até o momento referente a Kubernetes, então, se não tinha visto o início, é só clicar abaixo e ler cada um:

Então, o que é ConfigMap? É o desacoplamento dos artefatos de configuração do conteúdo da imagem para manter os aplicativos contidos em container. De forma simples, podemos dizer que ConfigMap é um conjunto de pares de chave-valor para armazenamento de configurações, que ficará armazenado dentro de arquivos  que podem ser consumidos através de Pods ou Controllers. Ele é muito parecido com Secrets, mas fornece um modo de se trabalhar com strings que não possuem dados confidências, como senhas, chaves, tokens e outros dados sigilosos.

Os arquivos de ConfigMap podem ser tanto arquivos complexos, que possuem poucas regras, como também arquivos no formato JSON, complexos e cheio de regras. Podemos ver alguns exemplos abaixo de ConfigMaps (tanto simples, quanto complexos).

Vemos aqui um exemplo de criação de um ConfigMap através do client do Kubernetes “kubectl”:

kubectl create configmap site --from-literal='url=mundodocker.com.br' Podemos ver

Podemos ver aqui um outro exemplo que é um arquivo de configuração que, a partir dele, também podemos criar o nosso ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: mundodocker
  labels:
    name: mundodocker
  namespace: test
data:
  config: |-
    ---
    :url: mundodocker.com.br

Como foi visto acima, existe duas formas nas quais podemos criar o nosso ConfigMap. “Mas, ahhh Bicca, como integramos isso com nosso Pod?”. Existem algumas formas para isso e a primeira é que você pode colocar isso dentro do arquivo de criação do Pod, como mostro abaixo:

apiVersion: v1
kind: Pod
metadata:
  name: mundodocker
spec:
  containers:      
  - image: gcr.io/google_containers/busybox      
    name: container
    volumeMounts:
    - name: configmap
      mountPath: "/tmp"
  volumes:
  - name: configmap
    condigMap:
      name: site

Essa seria a forma de criação de um Pod com ConfigMap habilitado, por exemplo. Esses são exemplos simples de arquivos que mostram como funciona o uso de ConfigMaps.

Algumas dicas:

  • Lembre-se que para que seja possível criar o seu Pod com ConfigMap, você precisa primeiro criar o ConfigMap ou colocá-lo como opcional, pois caso contrário, o Pod não será iniciado por que o ConfigMap ainda não foi criado;
  • ConfigMap estão dentro de Namespaces, então, apenas Pods do mesmo Namespace podem acessá-los;
  • Podem ser consumidos de três formas: argumentos, variáveis de ambiente e arquivos em volumes. Essa quantidade de modos faz com que ConfigMap se enquadre em grandes partes das aplicações.

Pessoal, vamos continuar criando artigos para explicar alguns componentes do Kubernetes e, em breve, vamos colocar mais conteúdos para demonstrar como é possível utilizar Kubernetes em produção com exemplos de uso no dia-a-dia. Fique atento que em breve estaremos com muitas novidades em nosso site e também.