Em diversos cenários de negócios, como conexão de workloads a bancos de dados de backend ou validação de requisições de clientes, é necessário armazenar informações confidenciais, incluindo nomes de usuário, senhas e certificados. Para evitar vazamento de dados, recomendamos o uso de secrets no cluster do Alibaba Cloud Container Compute Service (ACS) para gerenciar essas informações. Este tópico demonstra como criar um secret no console do Container Compute Service e utilizá-lo montando-o como volume ou expondo-o como variável de ambiente.
Pré-requisitos
O pod e o secret devem estar no mesmo cluster e namespace.
Criar um secret
Este exemplo cria um secret chamado secret-test.
Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.
Na página Deployments, clique em Create from YAML.
-
Selecione um modelo de exemplo ou personalize o conteúdo YAML e clique em Create.
O modelo YAML a seguir cria um secret.
apiVersion: v1 kind: Secret metadata: name: secret-test type: Opaque data: username: YWRtaW4= # The plaintext is admin. Encode it in Base64. password: MTIzNDU= # The plaintext is 12345. Encode it in Base64.
Para criar um secret pelos formulários da interface do console em vez de YAML, consulte Criar um secret.
Usar um secret como volume
Kubectl
É possível montar um secret como arquivos dentro de um pod. Neste exemplo, as chaves username e password do secret secret-test são montadas como arquivos no diretório /srt.
-
Crie um arquivo chamado example0.yaml e copie o seguinte conteúdo para ele.
apiVersion: v1 kind: Pod metadata: name: pod0 spec: containers: - name: redis image: redis volumeMounts: - name: srt mountPath: "/srt" readOnly: true volumes: - name: srt secret: secretName: secret-test -
Crie o pod.
kubectl apply -f example0.yaml -
Verifique se o secret foi montado.
kubectl describe pod pod0 | grep -A 4 VolumesSaída esperada:
Volumes: srt: Type: Secret (a volume populated by a Secret) SecretName: secret-test Optional: false
Console
Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.
-
Na página Deployments, clique em Create from Image.
NotaPara obter descrições detalhadas dos parâmetros, consulte Criar um workload sem estado (deployment).
Na aba Basic Information, configure os parâmetros conforme necessário e clique em Next.
-
Na aba Container, na seção Volume, clique em Add Local Storage. Defina PV type como secret. Em mount source, selecione o secret criado. Em container path, insira o caminho de acesso no container. Após configurar as informações, clique em Next.
Veja abaixo um exemplo de configuração.
Para mount source, selecione
secret-test. Para container path, insira/srt. Na aba Advanced, configure os parâmetros e clique em Create.
Usar um secret como variáveis de ambiente
Utilize um dos métodos a seguir.
Kubectl
Este exemplo expõe as chaves username e password do secret secret-test como variáveis de ambiente no pod.
-
Crie um arquivo chamado example1.yaml e copie o seguinte conteúdo para ele.
apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: redis image: redis env: - name: USERNAME valueFrom: secretKeyRef: name: secret-test key: username - name: PASSWORD valueFrom: secretKeyRef: name: secret-test key: password -
Crie o pod.
kubectl apply -f example1.yaml -
Verifique se as variáveis de ambiente foram definidas.
kubectl describe pod pod1 | grep -A 2 EnvironmentSaída esperada:
Environment: USERNAME: <set to the key 'username' in secret 'secret-test'> Optional: false PASSWORD: <set to the key 'password' in secret 'secret-test'> Optional: false
Console
Faça login no console do ACS. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments.
-
Na página Deployments, clique em Create from Image.
NotaPara mais informações, consulte Criar um workload sem estado (deployment).
Na aba Basic Information, configure os parâmetros conforme necessário e clique em Next.
Na aba Container, na seção Environments, clique em Add. Defina type como Secret. Em value/value from, selecione o secret criado. Em seguida, selecione a chave que deseja referenciar e insira um nome para a variável.