À partir de la version 1.28 d'ASM, le CRD ASMReconcileNSLabels vous permet de contrôler la synchronisation des libellés de namespace du plan de contrôle vers les clusters du plan de données. Cette rubrique présente des exemples YAML et décrit les champs disponibles.
Cas d'utilisation
Dans une instance ASM multicluster, les namespaces du plan de contrôle (l'instance ASM) et ceux du plan de données (les clusters Kubernetes) sont gérés indépendamment. Lorsque vous appliquez des libellés liés à Istio à un namespace sur le plan de contrôle, par exemple pour activer l'injection automatique de Sidecar ou le mode Ambient, ces libellés sont synchronisés par défaut avec tous les clusters du plan de données. Utilisez le CRD ASMReconcileNSLabels pour personnaliser ce comportement de synchronisation.
Limites
Votre instance ASM doit être en version 1.28 ou ultérieure. Pour les instructions de mise à niveau, consultez la rubrique Mettre à niveau une instance ASM.
Le CRD
ASMReconcileNSLabelsest une ressource étendue au cluster. Vous ne pouvez créer qu'une seule ressource nomméedefaultdans une instance ASM.-
Seuls les libellés suivants liés à Istio sont synchronisés. Les libellés personnalisés ne sont pas affectés :
istio.io/dataplane-mode: Active le mode Ambient pour le namespace.istio-injection: Active ou désactive l'injection automatique de Sidecar pour le namespace.istio.io/rev: Associe le namespace à une révision Istio spécifique.
Exemples YAML
Exemple 1 : Activer globalement la synchronisation des libellés de namespace
Synchronisez les libellés de namespace du plan de contrôle vers tous les clusters du plan de données.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default # Must be default
spec:
syncPolicy:
enabled: true
Exemple 2 : Désactiver globalement la synchronisation des libellés de namespace
Arrêtez la synchronisation de tous les libellés de namespace vers les clusters du plan de données.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
Exemple 3 : Synchroniser vers des clusters spécifiques (liste d'autorisation)
Synchronisez les libellés de namespace uniquement vers les clusters du plan de données spécifiés. Lorsque enabled est défini sur true, la liste clusters (ID de cluster) agit comme une liste d'autorisation.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
clusters:
- c-xxxx1 # Data plane cluster ID
- c-xxxx2
Exemple 4 : Exclure des clusters spécifiques (liste de blocage)
Synchronisez les libellés de namespace vers tous les clusters du plan de données, à l'exception de ceux spécifiés. Lorsque enabled est défini sur false, la liste clusters (ID de cluster) agit comme une liste de blocage.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
clusters:
- c-xxxx3 # Data plane cluster ID
Exemple 5 : Spécifier un cluster source
Utilisez le champ cardinal pour spécifier l'ID du cluster source.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # The ID of the source cluster for synchronization
Exemple 6 : Combiner liste d'autorisation et cluster source
Lisez les libellés de namespace depuis un cluster source spécifié et synchronisez-les uniquement vers les clusters figurant dans la liste d'autorisation.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
cardinal: c-xxxx4 # The ID of the source cluster for synchronization
clusters:
- c-xxxx1
- c-xxxx2
Champs
Spec
|
Champ |
Type |
Obligatoire |
Description |
|
syncPolicy |
SyncPolicy |
Non |
Politique globale de synchronisation des libellés de namespace. Si ce champ est omis, les libellés sont synchronisés vers tous les clusters du plan de données. |
SyncPolicy
L'objet SyncPolicy définit la manière dont les libellés de namespace sont synchronisés. Les champs enabled et clusters fonctionnent conjointement pour déterminer l'étendue de la synchronisation :
|
enabled |
clusters |
Comportement de synchronisation |
|
|
Vide |
Synchronisation vers tous les clusters du plan de données. |
|
|
|
Synchronisation vers les clusters A et B uniquement (liste d'autorisation). |
|
|
Vide |
Aucune synchronisation vers les clusters. |
|
|
|
Synchronisation vers tous les clusters, sauf les clusters A et B (liste de blocage). |
|
Champ |
Type |
Obligatoire |
Description |
|
enabled |
bool |
Non |
Contrôle l'activation de la synchronisation. Valeur par défaut : |
|
cardinal |
string |
Non |
ID du cluster source pour la synchronisation des libellés. Par défaut, il s'agit du cluster du plan de contrôle. Si le cluster spécifié n'existe pas, le système revient au cluster du plan de contrôle. |
|
clusters |
string[] |
Non |
Liste des ID de clusters du plan de données. Utilisée conjointement avec le champ |