Aplicando Tags a Volumes em Blocos

Descubra como aplicar tags a recursos de volume em blocos e como substituir tags de volume em blocos iniciais ao usar o Kubernetes Engine (OKE).

Ao criar um cluster, você pode definir tags a serem aplicadas aos volumes em blocos criados quando as reivindicações de volume persistentes (PVCs) são definidas. Essas tags são chamadas de tags de volume em blocos inicial. Você pode especificar tags definidas e de formato livre como tags iniciais de volume em blocos.

Você pode substituir as tags iniciais de volume em blocos definindo uma nova classe de armazenamento do Kubernetes que inclua parâmetros de tag e, em seguida, usando essa classe de armazenamento para criar PVCs (consulte Substituindo Tags Iniciais de Volume em Blocos). Se você usar uma classe de armazenamento que inclua parâmetros de tag, nenhuma das tags de volume em blocos iniciais especificadas na definição de cluster será aplicada a volumes em blocos. Em vez disso, as tags definidas na classe de armazenamento são aplicadas aos recursos de volume em blocos.

Os padrões de tag com valores padrão especificados para o compartimento também são aplicados automaticamente aos recursos de volume em blocos. Observe que o Kubernetes Engine não suporta atualmente padrões de tag com valores aplicados pelo usuário.

Observe o seguinte:

  • As tags só são aplicadas a volumes em blocos quando os volumes em blocos são criados pela primeira vez. Se você atualizar as tags iniciais de volume em blocos aplicadas aos recursos de volume em blocos, as alterações só se aplicarão a novos volumes em blocos (supondo que as tags não sejam substituídas por parâmetros na definição da classe de armazenamento). As tags aplicadas aos volumes em blocos existentes não são afetadas.
  • Se você aplicar uma tag definida de rastreamento de custos aos volumes em blocos, poderá incluir o uso do volume em blocos nos orçamentos (consulte Usando Tags de Rastreamento de Custos).
  • Para aplicar tags definidas de um namespace de tag pertencente a um compartimento a um recurso de volume em blocos pertencente a outro compartimento, inclua uma instrução de política para permitir que o cluster use o namespace de tag. Consulte Política Adicional do IAM quando um Cluster e um Namespace de Tag estão em Diferentes Compartimentos.

Usando a Console para Especificar Tags de Volume em Bloco Inicial

Para especificar uma tag inicial de volume em blocos a ser aplicada aos recursos de volume em blocos criados para um novo cluster:

  1. Siga as instruções em Usando a Console para criar um Cluster com Definições Configuradas Explicitamente no workflow 'Criação Personalizada' para criar um novo cluster.
  2. Exiba a seção Tags de volume em blocos iniciais da página Criar Cluster.
  3. Para adicionar uma tag definida aos recursos de volume em blocos:
    • Namespace de Tag: Selecione o namespace da tag ao qual a tag pertence.
    • Chave de Tag: Selecione o nome da tag definida a ser aplicada aos recursos de volume em blocos.
    • Valor da Tag: selecione o valor da tag em uma lista de valores predefinida, informe um novo valor ou deixe em branco (dependendo de como a tag definida foi configurada).
  4. Para adicionar uma tag de formato livre a recursos de volume em blocos:
    • Namespace de Tag: definido como Nenhum (as tags de formato livre não pertencem a um namespace de tag).
    • Chave de Tag: Informe um nome para a tag de formato livre a ser aplicada aos recursos de volume em blocos.
    • Valor da Tag: Informe um valor para a tag a ser aplicada aos recursos de volume em blocos.

Para atualizar tags iniciais de volume em blocos a serem aplicadas aos novos recursos de volume em blocos criados para um cluster:

  1. Siga as instruções em Atualizando um Cluster para atualizar um cluster existente.
  2. Exiba a guia Tags Iniciais do Serviço Block Volume da página Detalhes do Cluster.
  3. Selecione Adicionar Tags para adicionar, remover e alterar o valor de tags definidas e tags de formato livre aplicadas a novos recursos de volume em blocos.

    Observe que as tags só são aplicadas a recursos de volume em blocos quando os recursos de volume em blocos são criados pela primeira vez. Portanto, se você atualizar tags iniciais de volume em blocos, as alterações só se aplicarão a novos recursos de volume em blocos. As tags já aplicadas aos recursos de volume em blocos existentes não são afetadas.

Usando a CLI para Especificar Tags de Volume em Bloco Inicial

oci ce node-pool create \
--cluster-id <cluster-ocid> \
--compartment-id <compartment-ocid> \
--kubernetes-version <kubernetes-version> \
--name <node-pool-name> \
--node-shape <node-shape>  \
--persistent-volume-defined-tags <json-name-value-pairs> \
--persistent-volume-freeform-tags <json-name-value-pairs>

Por exemplo:

oci ce node-pool create \
--cluster-id ocid1.cluster.oc1.iad.aaaaaaaaaf______jrd \
--compartment-id ocid1.compartment.oc1..aaaaaaaay______t6q \
--kubernetes-version v1.20.11 \
--name Finance-Node-Pool \
--node-shape VM.Standard2.1 \
--persistent-volume-defined-tags {"Operations": {"CostCenter": "42"}} \
--persistent-volume-freeform-tags {"Department": "Finance"}

Usando a API para Especificar Tags de Volume em Bloco Inicial

Use os atributos freeformTags e definedTags do objeto PersistentVolumeConfigDetails usados pelas operações CreateCluster e Atualizar Cluster para adicionar e atualizar tags iniciais de volume em blocos.

Substituindo Tags de Volume em Bloco Inicial

Você pode substituir as tags iniciais de volume em blocos aplicadas a um recurso de volume em blocos usando parâmetros em um arquivo de manifesto de classe de armazenamento da seguinte forma:

  • Para substituir tags de volume em blocos inicial definidas, inclua o seguinte parâmetro na seção de parâmetros da definição StorageClass:

    oci.oraclecloud.com/initial-defined-tags-override: '{"<tag-namespace>": {"<tag-key>": "<tag-value>"}}'
  • Para substituir tags de volume em blocos inicial de formato livre, inclua o seguinte parâmetro na seção de parâmetros da definição StorageClass:

    oci.oraclecloud.com/initial-freeform-tags-override: '{"<tag-key>": "<tag-value>"}'

Por exemplo:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: oci-bv-specifictags
provisioner: blockvolume.csi.oraclecloud.com
parameters:
  attachment-type: "paravirtualized"
  oci.oraclecloud.com/initial-freeform-tags-override: '{"Department": "Finance"}'
  oci.oraclecloud.com/initial-defined-tags-override: '{"Operations": {"CostCenter": "42"}}'
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

Observe o seguinte:

  • Se você especificar os parâmetros acima, nenhuma das tags iniciais de volume em blocos definidas para o cluster será aplicada ao recurso de volume em blocos. Somente as tags especificadas pelos parâmetros, juntamente com os padrões de tag, são aplicadas ao recurso de volume em blocos.
  • Após aplicar um arquivo de manifesto contendo uma definição StorageClass para criar a classe de armazenamento, você não poderá alterar subsequentemente os valores do parâmetro de tag atualizando a definição e reaplicando o arquivo de manifesto. Depois que uma classe de armazenamento é criada, ela é imutável. Para especificar diferentes valores de parâmetro de tag para os valores especificados anteriormente, crie uma nova definição StorageClass que inclua os novos valores para os parâmetros de tag. Em seguida, especifique a nova classe de armazenamento na definição de PVC.

Quais Tags São Aplicadas a Volumes em Blocos?

Esta imagem mostra um fluxograma que fornece uma representação gráfica de como o Kubernetes Engine aplica tags aos recursos de volume em blocos. As mesmas informações são fornecidas no texto ao redor.