Ao criar um cache de imagem com o CRD ImageCache, adicione anotações para controlar a rede, a autenticação no registro de imagens, a otimização e o ciclo de vida do cache. Este tópico lista todas as anotações compatíveis, com exemplos em YAML para cada cenário.
Visão geral das anotações
A tabela a seguir lista todas as anotações compatíveis, agrupadas por finalidade.
|
Anotação |
Valor de exemplo |
Descrição |
|
Rede |
||
|
|
"vsw-bp1dktddjsg5nktv**,vsw-bp1xpiowfm5vo8o3c**" |
IDs de vSwitch para a criação de cache de imagem multizona. Separe vários IDs com vírgulas. Padrão: o vSwitch configurado no eci-profile. |
|
|
|
ID do grupo de segurança. Padrão: o grupo de segurança configurado no eci-profile. |
|
|
|
ID do grupo de recursos. Padrão: o grupo de recursos configurado no eci-profile. |
|
Autenticação no registro de imagens |
||
|
|
|
IDs de instância do Container Registry Enterprise Edition para pull de imagens sem Secret. Para fazer pull de uma instância em outra região, adicione o ID da região como prefixo ao ID da instância: |
|
|
|
Alibaba Cloud Resource Names (ARNs) das funções do RAM na conta da Alibaba Cloud que possui os recursos do Elastic Container Instance (ECI). Obrigatório ao usar uma função do RAM para criar recursos. |
|
|
|
ARNs das funções do RAM na conta da Alibaba Cloud que possui a instância do Container Registry. Obrigatório para pull de imagens entre contas. |
|
|
"harbor.pre.com,192.168.XX.XX:5000,reg.test.com:80" |
Endereço de um repositório de imagens autogerenciado que usa HTTP. Por padrão, as instâncias de container elástico fazem pull de imagens via HTTPS. Adicione esta anotação para que a instância use HTTP no repositório especificado. |
|
|
"harbor.pre.com,192.168.XX.XX:5000,reg.test.com:80" |
Endereço de um repositório de imagens autogerenciado que usa certificado autoassinado. Adicione esta anotação para ignorar a verificação de certificado e evitar falhas no pull. |
|
Otimização de cache |
||
|
|
|
Ativa a reutilização de camadas de cache de imagem. Ao criar um cache de imagem, o sistema verifica os caches existentes e reutiliza as camadas de imagem correspondentes, o que reduz o tempo de criação. |
|
|
|
Ativa o cache de imagem instantâneo. O sistema cria um snapshot local temporário e torna o cache de imagem disponível imediatamente. Em segundo plano, o sistema cria um snapshot padrão e, após a conclusão, remove o snapshot local automaticamente. |
|
Ciclo de vida do cache |
||
|
|
|
Período de retenção em dias. O sistema exclui automaticamente os caches de imagem expirados. Padrão: em branco (nunca expira). |
|
|
|
Tamanho do cache de imagem em GiB. Padrão: 20. Intervalo válido: 20 a 32768. |
|
Acesso à internet via EIP |
||
|
|
|
ID de um Elastic IP Address (EIP) existente a ser associado à instância de container elástico temporária durante a criação do cache de imagem. O EIP é retido após a criação do cache de imagem. |
|
|
|
Cria automaticamente um EIP e o associa à instância de container elástico temporária. O sistema libera o EIP após a criação do cache de imagem. |
|
|
|
Limite de largura de banda do EIP criado automaticamente, em Mbit/s. |
|
|
|
Método de faturamento para o EIP criado automaticamente. Valores válidos: |
|
|
|
Tipo de linha para o EIP criado automaticamente. Aplicável apenas a EIPs com pagamento conforme o uso. Valores válidos: |
|
|
|
ID do plano de largura de banda de EIP a ser associado ao EIP criado automaticamente. |
Criação de cache de imagem multizona
O ECI cria uma instância de container elástico temporária para fazer pull e armazenar imagens em cache. Para garantir o sucesso da criação do cache mesmo quando uma zona estiver indisponível, especifique vários vSwitches em zonas diferentes.
Nota: Por padrão, o sistema utiliza o vSwitch configurado no cluster Kubernetes ou no VNode. Se o cluster ou VNode já abranger várias zonas, pode não ser necessário especificar os vSwitches explicitamente.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/vswitch-ids: "vsw-bp1dktddjsg5nktv****,vsw-bp1xpiowfm5vo8o3c****" # Multiple vSwitches for multi-zone support.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Configure um grupo de segurança e um grupo de recursos
Por padrão, o sistema utiliza o grupo de segurança e o grupo de recursos do eci-profile. Use as anotações a seguir para substituí-los para um cache de imagem específico.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/security-group-id: "sg-bp1dktddjsg5nktv****" # Override the default security group.
k8s.aliyun.com/resource-group-id: "rg-aek2z3elfs4****" # Override the default resource group.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Faça pull de imagens do Container Registry sem Secret
O pull de imagens sem Secret permite que o ECI faça pull de imagens do Container Registry sem usar Secrets do Kubernetes. A compatibilidade depende de a instância do Container Registry estar na mesma conta da Alibaba Cloud e da edição utilizada.
|
Mesma conta |
Edição do Container Registry |
Pull de imagens sem Secret |
|
Sim |
Personal Edition ou Enterprise Edition (domínio padrão) |
Ativado por padrão. Configure uma função do RAM para limitar o escopo de instâncias que oferecem suporte ao pull sem Secret. |
|
Sim |
Enterprise Edition (domínio personalizado) |
Desativado por padrão. Especifique as instâncias do Container Registry explicitamente usando |
|
Não |
Personal Edition ou Enterprise Edition |
Desativado por padrão. Configure uma função do RAM usando |
Para obter detalhes sobre a configuração, consulte Pull images from a Container Registry instance without using a Secret.
Use repositórios de imagens autogerenciados
Se um repositório de imagens autogerenciado usar HTTP ou um certificado autoassinado, o pull de imagens falhará com ErrImagePull por padrão. Adicione a anotação apropriada para evitar essa falha.
Repositórios HTTP
Por padrão, as instâncias de container elástico fazem pull de imagens via HTTPS. Se o seu repositório autogerenciado usar HTTP, o pull de imagens falhará com ErrImagePull. Adicione k8s.aliyun.com/plain-http-registry para permitir HTTP no repositório especificado.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/plain-http-registry: "192.168.XX.XX:5000" # Allow HTTP pulls from this repository.
spec:
images:
- 192.168.XX.XX:5000/test/nginx:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize: 25
retentionDays: 7
Repositórios com certificado autoassinado
Se o seu repositório autogerenciado usar um certificado autoassinado, o pull de imagens falhará com ErrImagePull. Adicione k8s.aliyun.com/insecure-registry para ignorar a verificação de certificado no repositório especificado.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/insecure-registry: "harbor***.pre.com" # Skip certificate verification for this repository.
spec:
images:
- harbor***.pre.com/test/nginx:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize: 25
retentionDays: 7
Para fazer pull de vários repositórios, separe os endereços com vírgulas:harbor***.pre.com,192.168.XX.XX. Se o endereço de um repositório incluir uma porta, inclua a porta no valor da anotação:192.168.XX.XX:5000.
Ative a reutilização de camadas de cache de imagem
O tempo de criação do cache de imagem depende do tamanho da imagem e das condições da rede. Com a reutilização de camadas ativada, o sistema verifica os caches de imagem existentes antes de criar um novo e reutiliza as camadas correspondentes, reduzindo significativamente o tempo de criação de imagens que compartilham camadas de base comuns.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-reuse: "true" # Reuse matching layers from existing image caches.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Ative o cache de imagem instantâneo
Com o cache de imagem instantâneo ativado, o sistema cria primeiro um snapshot local temporário para os discos da instância de container elástico temporária. O cache de imagem fica disponível assim que o snapshot local está pronto, sem necessidade de aguardar um snapshot padrão completo.
Após a criação do snapshot local, o sistema cria um snapshot padrão em segundo plano. O cache de imagem permanece utilizável durante todo esse processo. Quando o snapshot padrão fica pronto, o sistema remove o snapshot local automaticamente e o cache de imagem continua funcionando a partir do snapshot padrão.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-flash: "true" # Enable instant image cache for faster availability.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Configure o tamanho do cache e o período de retenção
Por padrão, os caches de imagem têm 20 GiB e nunca expiram. Defina o tamanho e o período de retenção usando anotações ou os campos imageCacheSize e retentionDays na seção spec.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-retention-days: "7" # Delete the image cache after 7 days.
k8s.aliyun.com/imc-size: "25" # Set the image cache size to 25 GiB.
spec:
images:
- centos:latest
- busybox:latest
Configure o acesso à internet via EIP
Durante a criação do cache de imagem, a instância de container elástico temporária precisa acessar a internet para fazer pull das imagens. Se a sua VPC não tiver um gateway NAT, associe um Elastic IP Address (EIP) à instância temporária.
Há duas opções disponíveis:
|
Opção |
Ciclo de vida do EIP |
|
Usar um EIP existente |
O EIP é retido após a criação do cache de imagem. |
|
Criar um EIP automaticamente |
O sistema libera o EIP junto com a instância temporária após a criação do cache de imagem. |
Use um EIP existente
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/eip-instance-id: "eip-bp1q5n8cq4p7f6dzu****" # Associate an existing EIP.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7
Crie um EIP automaticamente
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/auto-create-eip: "true" # Auto-create and associate an EIP.
k8s.aliyun.com/eip-bandwidth: "10" # Bandwidth limit in Mbit/s.
k8s.aliyun.com/eip-internet-charge-type: PayByBandwidth # Billing method: PayByBandwidth or PayByTraffic.
k8s.aliyun.com/eip-common-bandwidth-package-id: "cbwp-2zeukbj916scmj51m****" # EIP bandwidth plan ID.
spec:
images:
- centos:latest
- busybox:latest
imageCacheSize: 25
retentionDays: 7