A partir da versão 1.28 do ASM, o CRD ASMReconcileNSLabels permite controlar a sincronização de rótulos de namespace do plano de controle para os clusters do plano de dados. Este tópico apresenta exemplos de YAML e descrições dos campos.
Casos de uso
Em uma instância ASM multicluster, os namespaces no plano de controle (instância ASM) e no plano de dados (clusters Kubernetes) têm gerenciamento independente. Ao aplicar rótulos relacionados ao Istio em um namespace no plano de controle, como para ativar a injeção automática de Sidecar ou o modo Ambient, o sistema sincroniza esses rótulos com todos os clusters do plano de dados por padrão. Use o CRD ASMReconcileNSLabels para personalizar esse comportamento de sincronização.
Limitações
A instância ASM deve estar na versão 1.28 ou posterior. Para obter instruções de atualização, consulte Atualizar uma instância ASM.
O recurso
ASMReconcileNSLabelstem escopo de cluster. Crie apenas um recurso chamadodefaultem cada instância ASM.-
O sistema sincroniza apenas os seguintes rótulos relacionados ao Istio. Rótulos personalizados não sofrem alterações:
istio.io/dataplane-mode: Ativa o modo Ambient para o namespace.istio-injection: Ativa ou desativa a injeção automática de Sidecar no namespace.istio.io/rev: Atribui o namespace a uma revisão específica do Istio.
Exemplos de YAML
Exemplo 1: ativar a sincronização de rótulos de namespace globalmente
Sincronize os rótulos de namespace do plano de controle para todos os clusters do plano de dados.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default # Must be default
spec:
syncPolicy:
enabled: true
Exemplo 2: desativar a sincronização de rótulos de namespace globalmente
Interrompa a sincronização de todos os rótulos de namespace para os clusters do plano de dados.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
Exemplo 3: sincronizar com clusters específicos (lista de permissões)
Sincronize os rótulos de namespace apenas com os clusters do plano de dados especificados. Quando enabled é true, a lista clusters (IDs de cluster) funciona como uma lista de permissões.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: true
clusters:
- c-xxxx1 # Data plane cluster ID
- c-xxxx2
Exemplo 4: excluir clusters específicos (lista de bloqueios)
Sincronize os rótulos de namespace com todos os clusters do plano de dados, exceto os especificados. Quando enabled é false, a lista clusters (IDs de cluster) funciona como uma lista de bloqueios.
apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
name: default
spec:
syncPolicy:
enabled: false
clusters:
- c-xxxx3 # Data plane cluster ID
Exemplo 5: especifique um cluster de source
Use o campo cardinal para especificar o ID do cluster de 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
Exemplo 6: combinar lista de permissões e cluster de source
Leia os rótulos de namespace de um cluster de source específico e sincronize-os apenas com os clusters presentes na lista de permissões.
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
Campos
Spec
|
Campo |
Tipo |
Obrigatório |
Descrição |
|
syncPolicy |
SyncPolicy |
Não |
Política global de sincronização de rótulos de namespace. Se omitida, o sistema sincroniza os rótulos com todos os clusters do plano de dados. |
SyncPolicy
O objeto SyncPolicy define a sincronização de rótulos de namespace. Os campos enabled e clusters atuam em conjunto para determinar o escopo da sincronização:
|
enabled |
clusters |
Comportamento de sincronização |
|
|
Vazio |
Sincroniza com todos os clusters do plano de dados. |
|
|
|
Sincroniza apenas com os clusters A e B (lista de permissões). |
|
|
Vazio |
Não sincroniza com nenhum cluster. |
|
|
|
Sincroniza com todos os clusters, exceto os clusters A e B (lista de bloqueios). |
|
Campo |
Tipo |
Obrigatório |
Descrição |
|
enabled |
bool |
Não |
Controla se a sincronização está ativada. Padrão: |
|
cardinal |
string |
Não |
ID do cluster de source para a sincronização de rótulos. Padrão: o cluster do plano de controle. Caso o cluster especificado não exista, o sistema usará o cluster do plano de controle como fallback. |
|
clusters |
string[] |
Não |
Lista de IDs de clusters do plano de dados. Usado em conjunto com o campo |