Por que aparece o erro “ MetadataServiceNotEnabled ” ao acessar File Storage for VPC?
Nuvem Privada Virtual
Se o seu pod ou PVC apresentar uma falha com o erro “ MetadataServiceNotEnabled ” ao usar a criptografia em trânsito (EIT) com o File Storage for VPC, utilize este tópico para identificar e resolver a causa.
Ao usar a criptografia em trânsito (EIT) com o File Storage for VPC, seu pod ou PVC apresenta falha com o erro “ MetadataServiceNotEnabled ”.
Você vê uma mensagem de erro semelhante ao exemplo a seguir nos eventos do seu pod ou na saída do comando describe:
Code: MetadataServiceNotEnabled,
Description: Failed to mount target.,
Action: Metadata service might not be enabled for worker node.
Make sure to use IKS>=1.30 or ROKS>=4.16 cluster.
Esse erro significa que o processo de montagem do EIT tentou acessar o serviço de metadados da instância em 169.254.169.254, mas não recebeu resposta. Existem duas causas principais independentes — verifique ambas.
Resolvendo o problema
Verifique as seguintes causas principais.
Causa principal A — A versão do cluster está muito desatualizada
O EIT requer a versão 4.16 ou posterior do ROKS. Em clusters mais antigos, o ponto de conexão do serviço de metadados não está disponível para as cargas de trabalho.
Verifique a versão atual do cluster para confirmar se ele atende aos requisitos mínimos. A saída exibe o status “ Pending ” ou “ normal ” e a versão “ Kubernetes ”.
ibmcloud ks cluster get --cluster CLUSTER_ID | grep "Version"
Solução: Atualize o cluster para a versão 4.16 do ROKS ou posterior.
Causa principal B — Falta a regra de metadados de saída no cluster “Secure by Default”
Para clusters com a configuração “Seguro por padrão”, o tráfego de saída para 169.254.169.254 é bloqueado, a menos que uma regra de saída explícita seja adicionada ao grupo de segurança kube-<clusterID>. Sem
essa regra, o processo EIT não consegue acessar o serviço de metadados, mesmo em uma versão de cluster compatível.
Essa regra é adicionada automaticamente para clusters ROKS na versão 4.18 e posteriores. Para versões mais antigas do cluster, adicione a regra manualmente.
-
Verifique se a regra de saída já existe. Se o comando retornar uma linha contendo “
169.254.169.254”, a regra está presente e essa não é a causa.ibmcloud is sg kube-CLUSTER_ID | grep 169.254.169.254 -
Se a regra não estiver presente, adicione-a.
ibmcloud is sg-rulec kube-CLUSTER_ID outbound \ --protocol all \ --remote 169.254.169.254Como alternativa, adicione a regra na interface do usuário do IBM Cloud, em “VPC Infrastructure” > “Security groups” > “
kube-<clusterID>” > “Outbound rules”, com os seguintes valores:Valores das regras de saída para acesso ao serviço de metadados Campo Valor Protocolo Qualquer Tipo de origem Qualquer Origem 0.0.0.0/0Destino 169.254.169.254 -
Depois de adicionar a regra, tente novamente o pod que apresentou falha. Não é necessário reiniciar o nó.
Se o problema persistir após ambas as verificações, abra um ticket de suporte junto à equipe de Armazenamento em Contêineres do IBM Cloud.