Compartir a través de


Descripción de las instantáneas para la colocación de recursos del clúster de Fleet Manager de Azure Kubernetes

Fleet Manager mantiene un historial de las 10 directivas de programación de colocación usadas más recientemente, junto con las versiones de recursos seleccionadas. Estas versiones de directiva y recursos se mantienen como objetos ClusterSchedulingPolicySnapshot y ClusterResourceSnapshot respectivamente.

En este artículo, exploraremos estos objetos para que pueda comprenderlos si quiere trabajar con ellos.

Nota:

Si aún no está familiarizado con la ubicación de recursos del clúster (CRP) de Fleet Manager, lea la introducción conceptual de la colocación de recursos antes de leer este artículo.

Visualización de instantáneas de recursos

Puede ver las instantáneas de recursos mantenidas por Fleet Manager mediante los pasos siguientes al conectarse al clúster del concentrador de Fleet Manager.

En este ejemplo se usa un configMap actualizado, lo que conduce a dos instantáneas.

kubectl get clusterresourcesnapshots --show-labels

Vemos dos instantáneas, con la más reciente marcada como la más reciente (kubernetes-fleet.io/is-latest-snapshot=true), con un índice de recursos de 1 (kubernetes-fleet.io/resource-index=1).

NAME                           GEN   AGE    LABELS
example-placement-0-snapshot   1     17m    kubernetes-fleet.io/is-latest-snapshot=false,kubernetes-fleet.io/parent-CRP=example-placement,kubernetes-fleet.io/resource-index=0
example-placement-1-snapshot   1     2m2s   kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP=example-placement,kubernetes-fleet.io/resource-index=1

Podemos inspeccionar el contenido del objeto example-placement-1-snapshot de la siguiente manera.

kubectl get clusterresourcesnapshots example-placement-1-snapshot -o yaml
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourceSnapshot
metadata:
  ...
  labels:
    kubernetes-fleet.io/is-latest-snapshot: "true"
    kubernetes-fleet.io/parent-CRP: example-placement
    kubernetes-fleet.io/resource-index: "1"
  name: example-placement-1-snapshot
  ...
spec:
  selectedResources:
  - apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        kubernetes.io/metadata.name: test-namespace
      name: test-namespace
    spec:
      finalizers:
      - kubernetes
  - apiVersion: v1
    data:
      key: value2
    kind: ConfigMap
    metadata:
      name: test-cm
      namespace: test-namespace

Uso de instantáneas de recursos

Las instantáneas se pueden usar como parte de las implementaciones preconfiguradas de CRP administradas a través de ejecuciones de actualizaciones como un mecanismo de reversión

Modificación del límite del historial de instantáneas

Para cambiar el número de elementos contenidos en el historial, agregue un campo revisionHistoryLimit a la CRP y proporcione un valor entero. El valor predeterminado es 10.

apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
  name: crp-example
spec:
  revisionHistoryLimit: 20   # keep 20 items in history
  resourceSelectors:
    - group: ""
      kind: Namespace
      name: test-namespace
      version: v1
  policy:
    placementType: PickN
    numberOfClusters: 2
    affinity:
      clusterAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          clusterSelectorTerms:
            - labelSelector:
                matchLabels:
                  fleet.azure.com/location: westus
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 50%

Pasos siguientes