Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ Gerenciador de Frota com cluster do hub
Quando você trabalha com Azure o Kubernetes Fleet Manager, entender o status de seus ClusterResourcePlacement recursos é crucial para monitorar o progresso da implantação e solucionar problemas.
Quando você trabalha com Azure o Kubernetes Fleet Manager, entender o status de seus ResourcePlacement recursos é crucial para monitorar o progresso da implantação e solucionar problemas.
Pré-requisitos
- Você tem um Fleet Manager com um cluster de hub e um ou mais clusters de membros. Se você não tiver um, consulte Como criar um recurso do Azure Kubernetes Fleet Manager e adentrar em clusters membros.
- Você tem acesso ao cluster do hub do Fleet Manager. Para obter mais informações, consulte Acesse a API do Kubernetes para um cluster hub do Azure Kubernetes Fleet Manager.
- Você implantou pelo menos um
ClusterResourcePlacementpara distribuir seus recursos. Caso contrário, consulte Use o posicionamento de recursos do cluster para implantar cargas de trabalho em vários clusters.
- Você implantou pelo menos um objeto da API ResourcePlacement para colocar seus recursos na frota. Caso contrário, consulte Use o posicionamento de recursos do cluster para implantar cargas de trabalho em vários clusters.
Visão geral da estrutura de status de posicionamento
O ClusterResourcePlacement objeto contém não apenas a especificação descritiva sobre o posicionamento, mas também o status da operação de posicionamento.
O ResourcePlacement objeto contém não apenas a especificação descritiva sobre o posicionamento, mas também o status da operação de posicionamento.
A seção de status fornece informações detalhadas sobre:
- O status geral de posicionamento é expresso através de condições.
- Recursos selecionados com base no posicionamento
- Status de posicionamento por cluster expresso por meio de condições
- Posicionamentos
Failed,drifted, anddiffedem cada cluster
Para exibir o status de um posicionamento, use o seguinte comando:
kubectl describe clusterresourceplacement <placement-name>
kubectl describe resourceplacement <placement-name> -n <namespace-name>
Para obter a saída yaml bruta, use o seguinte comando:
kubectl get clusterresourceplacement <placement-name> -o yaml
kubectl get resourceplacement <placement-name> -n <namespace-name> -o yaml
Campos de status de nível superior
A seção de status contém os seguintes campos de nível superior:
- selectedResources: Lista de recursos selecionados pelo posicionamento
- condições: Matriz de condições gerais de posicionamento
- observedResourceIndex: Índice do instantâneo atual do recurso
- placementStatuses: informações de status de posicionamento por cluster
As seções a seguir examinam cada campo em detalhes.
Recursos selecionados
O selectedResources campo lista todos os recursos selecionados pelo posicionamento. Use este campo para verificar se os recursos esperados estão incluídos no posicionamento. Veja um exemplo:
selectedResources:
- kind: Namespace
name: test
version: v1
- kind: ConfigMap
name: test-config
namespace: test
version: v1
envelope:
name: example-envelope
namespace: test
type: ResourceEnvelope
- kind: Deployment
name: web-app
namespace: test
group: apps
version: v1
- kind: Service
name: web-service
namespace: test
version: v1
- kind: Secret
name: app-secrets
namespace: test
version: v1
selectedResources:
- kind: ConfigMap
name: test-config
version: v1
envelope:
name: example-envelope
namespace: test
type: ResourceEnvelope
- kind: Deployment
name: web-app
group: apps
version: v1
- kind: Service
name: web-service
version: v1
- kind: Secret
name: app-secrets
version: v1
Cada entrada de recurso inclui:
- grupo: grupo de API (vazio para recursos principais)
-
versão: versão da API (por exemplo,
v1,v1beta1) - tipo: Tipo de recurso
- nome: Nome do recurso
- namespace: namespace (para recursos com namespace)
-
envelope: se um recurso for encapsulado em um envelope, os metadados do envelope também serão fornecidos, o que inclui:
- nome: Nome do envelope
- namespace: espaço de nomes do envelope
-
tipo: tipo do envelope (por exemplo,
ResourceEnvelope)
Condições de posicionamento
A matriz conditions fornece informações de status de alto nível sobre todo o posicionamento. Cada condição segue a definição comum do Kubernetes, que tem os seguintes campos padrão:
- tipo: o tipo de condição (descrito nas seções a seguir).
-
status:
True,FalseouUnknown. - motivo: código de motivo curto para a condição.
- mensagem: descrição legível por humanos.
- lastTransitionTime: quando a condição foi alterada pela última vez.
- observedGeneration: geração do posicionamento quando a condição foi definida.
Tipos de condições do ClusterResourcePlacement
Os seguintes tipos de condição estão disponíveis para ClusterResourcePlacement:
ClusterResourcePlacementScheduled
Tipos de condição de colocação de recurso
Os seguintes tipos de condição estão disponíveis para ResourcePlacement:
Alocação de Recurso Agendada
Indica se a distribuição está realizada com sucesso para os clusters de destino.
- True: todos os clusters necessários são selecionados de acordo com a política de posicionamento.
- False: falha no agendamento (por exemplo, clusters insuficientes disponíveis).
- Desconhecido: a decisão de agendamento está pendente.
conditions:
- type: ClusterResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
Início da Implementação de Colocação de Recursos do Cluster
ResourcePlacementRolloutStarted
Indica se a distribuição é iniciada entre os clusters selecionados.
- Verdadeiro: os recursos começaram a ser distribuídos para clusters agendados.
- False: A distribuição ainda não foi iniciada.
- Desconhecido: A decisão sobre a implantação ainda está pendente.
conditions:
- type: ClusterResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 3 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 3 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
ClusterResourcePlacementOverridden
ResourcePlacementOverridden
Indica se as substituições de recursos são aplicadas com êxito.
- Verdadeiro: todas as substituições aplicáveis são processadas.
- Falso: algumas substituições tiveram falha ao serem aplicadas.
- Desconhecido: o processamento de substituição está pendente.
conditions:
- type: ClusterResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
Sincronização de Trabalho de Colocação de Recursos em Cluster
TrabalhoSincronizadoDeColocaçãoDeRecurso
Indica se o processo cria objetos de trabalho nos namespaces por cluster do hub.
- True: todos os objetos de trabalho são sincronizados.
- False: a sincronização de trabalho falha ou está incompleta.
- Desconhecido: a sincronização de trabalho está pendente.
conditions:
- type: ClusterResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:23:43Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:23:43Z"
observedGeneration: 5
AplicaçãoDeColocaçãoDeRecursosNoCluster
PosicionamentoDeRecursosAplicado
Indica se todos os recursos são aplicados com êxito a clusters membros.
- True: todos os recursos aplicados com êxito a todos os clusters de destino.
-
False: alguns recursos não foram aplicados (verifique
failedPlacements). - Desconhecido: a operação de aplicação está pendente.
conditions:
- type: ClusterResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 3 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 3 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
DisponibilidadeDeColocaçãoDeRecursosNoCluster
DisponibilidadeDeColocaçãoDeRecursos
Indica se os recursos colocados estão todos disponíveis e prontos em clusters de membros.
- True: todos os recursos estão disponíveis em todos os clusters de destino.
- False: alguns recursos ainda não estão disponíveis.
- Desconhecido: a verificação de disponibilidade está pendente.
conditions:
- type: ClusterResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 3 clusters are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 3 clusters are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
ClusterResourcePlacementDiffReported
ResourcePlacementDiffReported
Indica se as diferenças de configuração são relatadas (ao usar a estratégia ReportDiff).
- True: o relatório completo de diferenças está disponível.
- False: o relatório de diff falhou ou está incompleto.
- Desconhecido: o relatório de diferenças está pendente.
conditions:
- type: ClusterResourcePlacementDiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for all target clusters"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementDiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for all target clusters"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
Instantâneos de recurso
O campo observedResourceIndex indica qual instantâneo de recursos está sendo implantado no momento.
observedResourceIndex: "1"
O Fleet Manager cria instantâneos de recursos de forma diferente dependendo da estratégia de implantação.
Para a estratégia RollingUpdate (padrão): o Fleet Manager cria automaticamente instantâneos de recursos quando:
- Os seletores de recursos são alterados
- Você modifica os recursos selecionados
Para a estratégia External: o Fleet Manager não cria instantâneos de recursos automaticamente. Em vez disso, ele os cria quando você executa uma execução de atualização em etapas e omite o resourceSnapshotIndex campo. Essa condição significa que, quando você cria uma implantação pela primeira vez com uma estratégia de distribuição External, não existirá nenhum instantâneo de recurso até que você execute a primeira execução de atualização por etapas.
Observação
Se uma alocação usava anteriormente a estratégia RollingUpdate e você a alterar para External, os instantâneos dos recursos existentes permanecerão disponíveis. Você pode referenciar esses instantâneos existentes ao criar execuções de atualização em etapas.
Cada instantâneo tem um índice exclusivo. Você pode exibir instantâneos usando:
kubectl get clusterresourcesnapshot --selector=kubernetes-fleet.io/resource-index=1
kubectl get resourcesnapshot -n <namespace-name> --selector=kubernetes-fleet.io/resource-index=1
Status de alocação por cluster
A placementStatuses matriz contém status detalhado para cada cluster em que os recursos são colocados ou tentam ser colocados:
placementStatuses:
- clusterName: aks-member-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-1"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-member-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-2"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply some manifests"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
failedPlacements:
- kind: Deployment
name: web-app
namespace: test
version: apps/v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: insufficient resources"
lastTransitionTime: "2023-11-10T08:16:15Z"
Tipos de condição por cluster
O status de cada cluster inclui condições que acompanham o ciclo de vida da implantação:
ResourceScheduled
Indica se o cluster foi selecionado com êxito para posicionamento.
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
Início da Implantação
Indica se a distribuição foi iniciada neste cluster específico.
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
Substituído
Indica se as substituições de recursos são aplicadas a esse cluster.
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
TrabalhoSincronizado
Indica se os objetos de trabalho são criados para esse cluster.
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
Aplicado
Indica se todos os recursos são aplicados com êxito a esse cluster.
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
Disponível
Indica se todos os recursos estão disponíveis e prontos neste cluster.
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
DiffReported
Indica se as diferenças de configuração são relatadas para esse cluster.
- type: DiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for this cluster"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
Posicionamentos com falha
Quando os recursos não se aplicam a um cluster, o sistema registra os detalhes na failedPlacements matriz:
failedPlacements:
- kind: Deployment
name: my-app
namespace: default
version: apps/v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: namespaces 'app' not found"
lastTransitionTime: "2023-12-06T00:09:53Z"
envelope:
name: example
namespace: app
type: ResourceEnvelope
- kind: Service
name: my-service
namespace: default
version: v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: Service 'my-service' is forbidden: User 'system:serviceaccount:fleet-system:fleet-agent' cannot create resource 'services' in API group '' in the namespace 'default'"
lastTransitionTime: "2023-12-06T00:10:15Z"
- kind: ConfigMap
name: app-config
namespace: production
version: v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: configmaps 'app-config' already exists"
lastTransitionTime: "2023-12-06T00:10:30Z"
Cada posicionamento com falha inclui:
- Identificação de recursos: grupo, versão, tipo, nome, namespace
- condição: A condição de falha específica
- envelope: Informações do envelope, se aplicável
Posicionamentos desalinhados
Fleet Manager sempre informa os recursos que se desviam do estado desejado:
driftedPlacements:
- kind: Namespace
name: web
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 12
observedDrifts:
- path: "/metadata/labels/owner"
valueInHub: "simon"
valueInMember: "chen"
- path: "/metadata/annotations/purpose"
valueInHub: "production"
valueInMember: "testing"
- kind: Deployment
name: web-app
namespace: web
group: apps
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 8
observedDrifts:
- path: "/spec/replicas"
valueInHub: "3"
valueInMember: "5"
- path: "/spec/template/spec/containers/0/image"
valueInHub: "nginx:1.20"
valueInMember: "nginx:1.21"
- kind: ConfigMap
name: app-config
namespace: web
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 5
observedDrifts:
- path: "/data/environment"
valueInHub: "production"
valueInMember: "staging"
Cada posicionamento desviado inclui:
- Identificação de recursos: grupo, versão, tipo, nome, namespace
- observationTime: Quando o desvio foi observado pela última vez
- firstDriftedObservedTime: Quando o desvio foi detectado pela primeira vez
- targetClusterObservedGeneration: geração do recurso no cluster membro
- observedDrifts: Lista detalhada de diferenças de configuração
Comparação de posicionamentos
Quando você usa a estratégia de aplicação do ReportDiff, o Fleet Manager relata diferenças de configuração.
diffedPlacements:
- kind: Service
name: my-service
namespace: default
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDiffedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 8
observedDiffs:
- path: "/spec/ports/0/nodePort"
valueInHub: ""
valueInMember: "30080"
- path: "/spec/clusterIP"
valueInHub: ""
valueInMember: "10.96.100.200"
- kind: Deployment
name: web-app
namespace: default
group: apps
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDiffedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 12
observedDiffs:
- path: "/status/replicas"
valueInHub: ""
valueInMember: "3"
- path: "/status/readyReplicas"
valueInHub: ""
valueInMember: "3"
- path: "/metadata/generation"
valueInHub: "1"
valueInMember: "2"
Os posicionamentos diferenciados têm uma estrutura semelhante aos posicionamentos deslocados, mas são usados para cenários diferentes.
- Posicionamentos desalinhados: use quando aplicar recursos, mas altere-os.
- Posicionamentos de comparação: use com a estratégia ReportDiff ou quando as condições de tomada de controle não são atendidas.
Monitorando o progresso do posicionamento
Para monitorar efetivamente o progresso do posicionamento, verifique estes principais indicadores:
-
Recurso alocado: Verifique se
ClusterResourcePlacementWorkSynchronizedé verdadeiro -
Saúde geral: Veja a
ClusterResourcePlacementAppliedcondição - Status por cluster: examinar as condições de cada cluster de destino
-
Posicionamentos com falha: verifique se há entradas em
failedPlacementsmatrizes
-
Recurso inserido: Verifique se
ResourcePlacementWorkSynchronizedé verdadeiro -
Saúde geral: Verifique a
ResourcePlacementAppliedcondição - Status por cluster: examinar as condições de cada cluster de destino
-
Posicionamentos com falha: verifique se há entradas em
failedPlacementsmatrizes
Exemplo de status completo
Aqui está um exemplo abrangente mostrando o status completo de um ClusterResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: web-app-placement
generation: 5
spec:
resourceSelectors:
- group: ""
kind: Namespace
name: web-app
version: v1
- group: apps
kind: Deployment
name: web-server
namespace: web-app
version: v1
- group: ""
kind: Service
name: web-service
namespace: web-app
version: v1
policy:
placementType: PickN
numberOfClusters: 2
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- matchLabels:
region: us-west
status:
conditions:
- type: ClusterResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: ClusterResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 2 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: ClusterResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: ClusterResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: ClusterResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 2 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: ClusterResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 2 cluster are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
observedResourceIndex: "1"
selectedResources:
- group: ""
kind: Namespace
name: web-app
version: v1
- group: apps
kind: Deployment
name: web-server
namespace: web-app
version: v1
- group: ""
kind: Service
name: web-service
namespace: web-app
version: v1
placementStatuses:
- clusterName: aks-west-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-west-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-2 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
Aqui está um exemplo abrangente mostrando o status completo de um ResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourcePlacement
metadata:
name: web-app-placement
namespace: web-app
generation: 5
spec:
resourceSelectors:
- group: apps
kind: Deployment
name: web-server
version: v1
- group: ""
kind: Service
name: web-service
version: v1
policy:
placementType: PickN
numberOfClusters: 2
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- matchLabels:
region: us-west
status:
conditions:
- type: ResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: ResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 2 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: ResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: ResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: ResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 2 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: ResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 2 cluster are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
observedResourceIndex: "1"
selectedResources:
- group: apps
kind: Deployment
name: web-server
version: v1
- group: ""
kind: Service
name: web-service
version: v1
placementStatuses:
- clusterName: aks-west-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-west-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-2 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
Este exemplo mostra:
- Agendamento com êxito: a alocação encontrou dois clusters que atendem à política de alocação.
- Distribuição bem-sucedida: todos os recursos são implantados em ambos os clusters de destino.
- Sem substituições: nenhuma substituição de recurso é configurada ou necessária.
- Trabalho sincronizado: os objetos de trabalho são criados e sincronizados.
- Recursos aplicados: todos os recursos são aplicados com êxito.
- Recursos disponíveis: todos os recursos estão em execução e disponíveis.
- Status limpo: nenhum posicionamento com falha, desvio ou diferença.
Conteúdo relacionado
Para saber mais sobre o posicionamento de recursos, consulte os seguintes artigos: