Saiba como criar um ConfigMap e configurar os serviços e as revisões do Knative serving para usar esse ConfigMap.
Um caso de uso comum para um serviço é usar ConfigMaps para separar o código do aplicativo da configuração. O ConfigMap é semelhante a Secret, exceto pelo uso de um Secret para informações confidenciais e de um ConfigMap para armazenar dados não confidenciais, como strings de conexão, credenciais públicas, nomes de host e URLs. Saiba mais sobre o uso de ConfigMaps na documentação do Google Kubernetes Engine.
Ao ativar contêineres para acessar ConfigMaps, é possível escolher uma destas opções:
- Monte o ConfigMap como um volume, com entradas do ConfigMap disponíveis como arquivos no volume montado. Isso é recomendado porque garante que você acesse a versão mais recente do ConfigMap ao lê-lo.
- Passe o ConfigMap usando variáveis de ambiente.
Como criar um ConfigMap
Há várias maneiras de criar um ConfigMap, conforme descrito na página ConfigMaps da documentação do GKE. Para sua conveniência, as etapas a seguir mostram uma maneira simples de criar um ConfigMap.
Ao criar um ConfigMap, certifique-se de criá-lo no mesmo namespace que o cluster que está executando o serviço do Knative serving. Estas
instruções usam o namespace default
.
É possível criar um ConfigMap a partir da linha de comando:
kubectl create configmap NAME DATA
Substitua:
- NAME é o nome do objeto ConfigMap.
DATA pode ser:
- A sinalização e o caminho
--from-file
para cada diretório que contém um ou mais arquivos de configuração - A sinalização
--from-literal
e o par de chave-valor para cada um que você quiser adicionar ao ConfigMap;
- A sinalização e o caminho
Por exemplo:
kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
O ConfigMap é criado e enviado onde está disponível para clusters no namespace default
.
Como disponibilizar um ConfigMap para um serviço
Depois de criado, é possível disponibilizar o ConfigMap para o serviço do Knative serving como volume ou variáveis de ambiente. Para isso, use o console do Google Cloud ou a CLI do Google Cloud ao implantar um novo serviço ou atualizar um que já existe e implantar uma revisão:
Console
Acesse o Knative serving no console do Google Cloud:
Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar uma nova revisão.
Em Configurações avançadas, clique em Variáveis e secrets.
Em Fazer referência a um ConfigMap, selecione o ConfigMap desejado no menu suspenso.
- No menu suspenso Método de referência, selecione a maneira como você quer usar o ConfigMap, montado como um volume ou exposto como variáveis de ambiente.
- Se você estiver usando a montagem como volume, especifique o caminho e clique em Concluído.
- Se você estiver expondo como variáveis de ambiente:
- Forneça o Nome da variável e selecione o valor do ConfigMap correspondente no menu suspenso Chave.
- Clique em Adicionar para adicionar outro valor do ConfigMap.
- Forneça o Nome da variável e selecione o valor do ConfigMap correspondente no menu suspenso Chave.
- Clique em Concluído.
Clique em Avançar para acessar a próxima seção.
Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.
Clique em Criar para implantar a imagem no Knative serving e aguarde até que a implantação seja concluída.
Linha de comando
Use a Google Cloud CLI para definir ConfigMaps para novos serviços ou atualizar os que já existem:
Para serviços atuais, atualize um ConfigMap executando o comando
gcloud run services update
com um dos parâmetros a seguir:Exemplo:
gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
Substitua:
- SERVICE pelo nome do serviço;
- KEY1=VALUE1,KEY2=VALUE2 com uma lista separada por
vírgulas dos pares de nome e valor para cada ConfigMap.
Para cada KEY, é possível
especificar um caminho de ativação ou fornecer uma variável de ambiente. Especifique um caminho de
ativação começando com uma barra
/
. Todas as outras chaves correspondem às variáveis de ambiente. Para cada VALUE, especifique o nome do ConfigMap. Como especificar vários parâmetros.
Opções de parâmetros de comando
Para especificar vários conjuntos de pares de chave-valor, é possível especificar vários parâmetros de legibilidade. Exemplo:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
Para novos serviços, defina o ConfigMap executando o comando
gcloud run deploy
com o parâmetro--set-config-maps
:gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
Substitua:
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
gcr.io/cloudrun/hello
; - SERVICE pelo nome do serviço;
- KEY1=VALUE1,KEY2=VALUE2 com uma lista separada por
vírgulas dos pares de nome e valor para cada ConfigMap.
Para cada KEY, é possível
especificar um caminho de ativação ou fornecer uma variável de ambiente. Especifique um caminho de
ativação começando com uma barra
/
. Todas as outras chaves correspondem às variáveis de ambiente. Para cada VALUE, especifique o nome do ConfigMap. Como especificar vários parâmetros.
Opções de parâmetros de comando
Para especificar vários conjuntos de pares de chave-valor, é possível especificar vários parâmetros de legibilidade. Exemplo:[...] --update-config-maps "KEY=VALUE1" \ --update-config-maps "KEY=VALUE2" \ --update-config-maps "KEY=VALUE3"
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,