Falhas ao instalar o Kf
O IP do Istio não está pronto
Isso pode acontecer se o Istio estiver demorando muito para receber um IP externo. Aguarde alguns minutos e execute novamente a etapa de envio do Cloud Build. No entanto, é possível que haja outro problema.
Erro do servidor (Solicitação inválida): caractere inválido
Se você vir esse erro ao definir padrões de configuração, é provável que o valor da variável de ambiente ${DOMAIN}
usada no comando inclua um "$" de escape. Use aspas simples para definir um domínio com um nome de espaço ou outra substituição:
Error from server (BadRequest): invalid character '$' in string escape code
Erros com objetos Kf Kubernetes
Siga estas instruções para solucionar problemas em objetos do Kubernetes KF.
Encontre o nome do tipo de recurso do Kubernetes que você quer solucionar listando todos os recursos do Kubernetes:
kubectl api-resources --api-group=kf.dev
Exemplo de saída:
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Receba a instância do recurso que você quer solucionar usando
kubectl
. Se o objeto não estiver em um namespace, omita a sinalização-n
:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Exemplo:
kubectl get apps.kf.dev my-app -n my-space -o yaml
Selecione seu problema nas guias abaixo:
O objeto não está fazendo reconciliação
- Verifique o valor de
metadata.generation
. Esse número é incrementado sempre que o objeto é atualizado. Quando esse número é extremamente alto, é provável que dois controladores do Kubernetes estejam lutando pelo objeto. Verifique o cluster para ver se alguma política está sendo aplicada ao objeto, o que pode alterar o estado pretendido. - Verifique se o namespace do objeto está sendo excluído. Se estiver, o objeto poderá não ser reconciliado.
- Verifique se o campo
status.observedGeneration
existe. Caso contrário, o controlador pode não ter sido executado no objeto ainda. Confira se o cluster e os controladores estão íntegros usandokf doctor
. - Verifique se o campo
metadata.generation
corresponde ao campostatus.observedGeneration
. Caso contrário, confirme se o cluster e os controladores estão íntegros usandokf doctor
. - Verifique se há falhas na lista do
status.conditions
com esta lista de motivos comuns de erro:
NotOwned
: há outro recurso que existe no cluster ou no namespace daquele que esse objeto está tentando criar. Leia a mensagem para encontrar o nome duplicado e renomear o recurso conflitante ou o objeto Kf.TemplateError
: há uma configuração incorreta na especificação do recurso Kf ou na configuração do Kf que faz com que o recurso filho seja reconciliado incorretamente. Valide as configurações do objeto Kf e do espaço Kf.CacheOutdated
: o controlador Kf não está recebendo atualizações do Kubernetes rápido o suficiente. Verifique a integridade do cluster do Kubernetes.ReconciliationError
: o controlador Kf não pode criar o recurso filho necessário. Verifique se o cluster está íntegro, se o Kf está em execução e se não há políticas aplicadas que impeçam o Kf de criar o objeto referenciado na mensagem.
O objeto não está excluindo
- Verifique se o
metadata.deletionTimestamp
do objeto foi definido. Se não tiver sido, a exclusão solicitada não funcionou. - Verifique se o
metadata.deletionTimestamp
do objeto está no passado. Se ele está no futuro, o objeto poderá não ser excluído. - Verifique se existe uma lista
metadata.finalizers
no objeto. Se houver finalizadores, o objeto precisará aguardar a remoção antes da exclusão. Se você quiser forçar uma exclusão sem esperar os finalizadores, edite o objeto para removê-los. - É possível que haja objetos filhos que estejam impedindo que o objeto seja excluído. Peça a um administrador para verificar todos os objetos no namespace e no cluster e ver se um deles precisa ser excluído manualmente primeiro.
- Verifique o valor de