Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Správce vozového parku uchovává historii 10 naposledy použitých zásad plánování umístění spolu s verzemi prostředků, která byla vybrána. Tyto verze politik a prostředků jsou uchovávány jako snímky:
- Pro ClusterResourcePlacement (CRP):
ClusterSchedulingPolicySnapshotaClusterResourceSnapshot(v rozsahu clusteru) - Pro ResourcePlacement (RP):
SchedulingPolicySnapshotaResourceSnapshot(obor názvů)
V tomto článku tyto objekty prozkoumáme, abyste jim porozuměli, pokud s nimi chcete pracovat.
Poznámka:
Pokud ještě neznáte, jak Správce flotily umisťuje prostředky:
- Prostředky určené na úrovni clustru jsou popsány v koncepčním přehledu ClusterResourcePlacement (CRP).
- Pro prostředky s oborem názvů (namespace) si přečtěte koncepční přehled ResourcePlacement (RP).
Jak se vytvářejí snímky prostředků
Všechny změny prostředků, na které se vztahuje rozsah výběru zdrojů CRP nebo RP, automaticky aktivují vytvoření nového snímku prostředku během 60 sekund.
Zobrazení snímků prostředků
Snímky prostředků uchovávané Správcem flotily můžete zobrazit pomocí následujícího postupu při připojení ke clusteru centra Fleet Manager.
Zobrazení ClusterResourceSnapshot (pro ClusterResourcePlacement)
Pro umístění ve shluku pomocí ClusterResourcePlacement, zobrazit objekty ClusterResourceSnapshot.
V této ukázce použijeme aktualizovanou mapu ConfigMap, která vede ke dvěma snímkům.
kubectl get clusterresourcesnapshots --show-labels
Vidíme dva snímky, s tím nejnovějším označeným jako poslední (kubernetes-fleet.io/is-latest-snapshot=true), s indexem zdrojů 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
Obsah objektu example-placement-1-snapshot můžeme zkontrolovat následujícím způsobem.
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
Zobrazení ResourceSnapshot (pro ResourcePlacement)
Pro umístění s oborem názvů pomocí ResourcePlacement zobrazte objekty ResourceSnapshot v tomto oboru názvů.
Poznámka:
ResourcePlacement používá rozhraní API verze placement.kubernetes-fleet.io/v1beta1 a je momentálně v testovací verzi.
V této ukázce máme ResourcePlacement v my-app oboru názvů s aktualizovanými objekty ConfigMap, což vede ke dvěma snímkům.
kubectl get resourcesnapshots -n my-app --show-labels
Vidíme dva snímky, s tím nejnovějším označeným jako poslední (kubernetes-fleet.io/is-latest-snapshot=true), s indexem zdrojů 1 (kubernetes-fleet.io/resource-index=1).
NAME GEN AGE LABELS
app-configs-rp-0-snapshot 1 15m kubernetes-fleet.io/is-latest-snapshot=false,kubernetes-fleet.io/parent-CRP=app-configs-rp,kubernetes-fleet.io/resource-index=0
app-configs-rp-1-snapshot 1 1m3s kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP=app-configs-rp,kubernetes-fleet.io/resource-index=1
Obsah objektu app-configs-rp-1-snapshot můžeme zkontrolovat následujícím způsobem.
kubectl get resourcesnapshots app-configs-rp-1-snapshot -n my-app -o yaml
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourceSnapshot
metadata:
...
labels:
kubernetes-fleet.io/is-latest-snapshot: "true"
kubernetes-fleet.io/parent-CRP: app-configs-rp
kubernetes-fleet.io/resource-index: "1"
name: app-configs-rp-1-snapshot
namespace: my-app
...
spec:
selectedResources:
- apiVersion: v1
data:
config: updated-value
kind: ConfigMap
metadata:
name: app-config
namespace: my-app
labels:
app: my-application
Použití snímků prostředků
Snímky lze použít jako součást postupného nasazování, které je řízeno prostřednictvím běhů aktualizací a slouží jako mechanismus pro vrácení zpět. Oba ClusterResourcePlacement i ResourcePlacement podporují postupné zavádění s jejich příslušnými typy snímků.
- Pro
ClusterResourcePlacement: PoužíváClusterResourceSnapshotobjekty sClusterStagedUpdateRun - Pro
ResourcePlacement: PoužíváResourceSnapshotobjekty sStagedUpdateRun
Podrobnosti o implementaci fázovaných zavedení pro oba typy umístění prostředků najdete v tématu Strategie postupného zavedení .
Úprava limitu historie snímků
Pokud chcete změnit počet položek uložených v historii, přidejte revisionHistoryLimit do umístění pole a zadejte celočíselnou hodnotu. Výchozí hodnota je 10.
Pro ClusterResourcePlacement
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%
Pro umístění zdrojů
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourcePlacement
metadata:
name: rp-example
namespace: my-app
spec:
revisionHistoryLimit: 20 # keep 20 items in history
resourceSelectors:
- group: ""
kind: ConfigMap
version: v1
labelSelector:
matchLabels:
app: my-application
policy:
placementType: PickN
numberOfClusters: 2
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- labelSelector:
matchLabels:
fleet.azure.com/location: westus
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 50%
Další kroky
- Definujte strategii nasazení pro prostředky clusteru.
- Řízení vyloučení a narušení při umisťování prostředků clusteru
- Pomocí umístění prostředků clusteru nasaďte úlohy napříč několika clustery.
- Umístění prostředků můžete použít k nasazení prostředků s oborem názvů napříč několika clustery.
- Inteligentní umístění prostředků Kubernetes napříč clustery na základě vlastností členských clusterů
Azure Kubernetes Service