Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

Criação de um segredo

Cenário

Um segredo é um tipo de recurso que contém dados confidenciais, como autenticação e informações da chave. Seu conteúdo é definido pelo usuário. Depois de criar segredos, você pode usá-los como arquivos ou variáveis de ambiente em uma carga de trabalho em contêiner.

Restrições

Segredos não podem ser usados em pods estáticos.

Procedimento

  1. Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
  2. Escolha ConfigMaps and Secrets no painel de navegação, clique na guia Secrets e clique em Create Secret no canto superior direito.
  3. Defina parâmetros.

    Tabela 1 Parâmetros para criar um segredo

    Parâmetro

    Descrição

    Name

    Nome do segredo que você cria, que deve ser único.

    Namespace

    Namespace ao qual o segredo pertence. Se você não especificar esse parâmetro, o valor default será usado por padrão.

    Description

    Descrição de um segredo.

    Type

    Tipo do segredo que você cria.

    • Opaque: segredo comum.
    • kubernetes.io/dockerconfigjson: um segredo que armazena as informações de autenticação necessárias para extrair imagens de um repositório privado.
    • kubernetes.io/tls: segredo TLS do Kubernetes, que é usado para armazenar o certificado exigido pelos serviços de balanceamento de carga da camada 7. Para obter detalhes sobre exemplos do segredo kubernetes.io/tls e sua descrição, consulte Segredos TLS.
    • IngressTLS: segredo TLS fornecido pelo CCE para armazenar o certificado exigido pelos Serviços de balanceamento de carga da camada-7.
    • Outros: outro tipo de segredo, que é especificado manualmente.

    Secret Data

    Os dados secretos da carga de trabalho podem ser usados em contêineres.

    • Se Secret Type for Opaque, clique em . Na caixa de diálogo exibida, insira um par chave-valor e selecione Auto Base64 Encoding.
    • Se Secret Type for kubernetes.io/dockerconfigjson, digite a conta e a senha do repositório de imagens privadas.
    • Se Secret Type for kubernetes.io/tls ou IngressTLS, carregue o arquivo de certificado e o arquivo de chave privada.
      NOTA:
      • Um certificado é uma credencial autoassinada ou assinada pela AC usada para autenticação de identidade.
      • Uma solicitação de certificado é uma solicitação de assinatura com uma chave privada.

    Secret Label

    Rótulo do segredo. Insira um par chave-valor e clique em Add.

  4. Após a conclusão da configuração, clique em OK.

    O novo segredo é exibido na lista de chaves.

Exemplo de configuração do arquivo de recursos de segredos

Esta seção descreve exemplos de configuração de arquivos de descrição de recursos de segredos.

  • Tipo Opaque

    O arquivo secret.yaml é definido como mostrado abaixo. O campo data é preenchido como um par chave-valor e o campo value deve ser codificado usando Base64. Para obter detalhes sobre o método de codificação Base64, consulte Codificação Base64.

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret           #Secret name
      namespace: default       #Namespace. The default value is default.
    data:
      <your_key>: <your_value>  # Enter a key-value pair. The value must be encoded using Base64.
    type: Opaque
  • Tipo kubernetes.io/dockerconfigjson

    O arquivo secret.yaml é definido como mostrado abaixo. O valor de .dockerconfigjson deve ser codificado usando Base64. Para mais detalhes, consulte Codificação Base64.

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret           #Secret name
      namespace: default       #Namespace. The default value is default.
    data:
      .dockerconfigjson: eyJh*****    # Content encoded using Base64.
    type: kubernetes.io/dockerconfigjson

    Para obter o conteúdo de .dockerconfigjson, execute as seguintes etapas:

    1. Obtenha as seguintes informações de logon do repositório de imagens.
      • Endereço do repositório de imagens: a seção usa address como exemplo. Substitua-o pelo endereço real.
      • Nome de usuário: a seção usa username como um exemplo. Substitua-o pelo nome de usuário real.
      • Senha: a seção usa password como exemplo. Substitua-a pela senha atual.
    2. Use Base64 para codificar o par chave-valor username:password e preencher o conteúdo codificado em 3.
      echo -n "username:password" | base64

      Saída do comando:

      dXNlcm5hbWU6cGFzc3dvcmQ=
    3. Use Base64 para codificar o seguinte conteúdo JSON:
      echo -n '{"auths":{"address":{"username":"username","password":"password","auth":"dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64

      Saída do comando:

      eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=

      O conteúdo codificado é o conteúdo de .dockerconfigjson.

  • Tipo kubernetes.io/tls
    O valor de tls.crt e tls.key deve ser codificado usando Base64. Para mais detalhes, consulte Codificação Base64.
    kind: Secret
    apiVersion: v1
    metadata:
      name: mysecret           #Secret name
      namespace: default       #Namespace. The default value is default.
    data:
      tls.crt: LS0tLS1CRU*****FURS0tLS0t  # Certificate content, which must be encoded using Base64.
      tls.key: LS0tLS1CRU*****VZLS0tLS0=  # Private key content, which must be encoded using Base64.
    type: kubernetes.io/tls
  • Tipo IngressTLS
    O valor de tls.crt e tls.key deve ser codificado usando Base64. Para mais detalhes, consulte Codificação Base64.
    kind: Secret
    apiVersion: v1
    metadata:
      name: mysecret           #Secret name
      namespace: default       #Namespace. The default value is default.
    data:
      tls.crt: LS0tLS1CRU*****FURS0tLS0t  # Certificate content, which must be encoded using Base64.
      tls.key: LS0tLS1CRU*****VZLS0tLS0=  # Private key content, which must be encoded using Base64.
    type: IngressTLS

Criar um segredo usando o kubectl

  1. De acordo com Conexão a um cluster usando o kubectl, configure o comando kubectl para conectar um ECS ao cluster.
  2. Crie e edite o arquivo cce-secret.yaml codificado em Base64.

    # echo -n "content to be encoded" | base64
    ******

    vi cce-secret.yaml

    O arquivo YAML a seguir usa o tipo Opaque como exemplo. Para obter detalhes sobre os tipos, consulte Exemplo de configuração do arquivo de recursos de segredos.

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    type: Opaque
    data:
      <your_key>: <your_value>  # Enter a key-value pair. The value must be encoded using Base64.

  3. Crie um segredo.

    kubectl create -f cce-secret.yaml

    Você pode consultar o segredo após a criação.

    kubectl get secret -n default

Operações relacionadas

Depois de criar um segredo, você pode atualizá-lo ou excluí-lo conforme descrito em Tabela 2.

A lista de segredos contém recursos de segredos do sistema que só podem ser consultados. Os recursos de segredos do sistema não podem ser atualizados ou excluídos.

Tabela 2 Operações relacionadas

Operação

Descrição

Editar um arquivo YAML

Clique em Edit YAML na linha em que o segredo de destino reside para editar seu arquivo YAML.

Atualizar um segredo

  1. Selecione o nome do segredo a ser atualizado e clique em Update.
  2. Modifique os dados do segredo. Para obter mais informações, consulte Tabela 1.
  3. Clique em OK.

Excluir um segredo

Selecione o segredo que deseja excluir e clique em Delete.

Siga as instruções para excluir o segredo.

Excluir segredos em lotes

  1. Selecione os segredos a serem excluídos.
  2. Clique em Delete acima da lista de segredos.
  3. Siga as instruções para excluir os segredos.

Codificação Base64

Para codificar uma cadeia em Base64, execute o comando echo -n content to be encoded | base64. O seguinte é um exemplo:

root@ubuntu:~# echo -n "content to be encoded" | base64
******