O Elastic Container Instance (ECI) oferece suporte a instâncias baseadas em Windows. Se seus contêineres exigirem um ambiente Windows, adicione um nó virtual Windows ao cluster e agende Pods nele. Isso cria Pods ECI baseados em Windows (instâncias ECI) para executar seus contêineres.
As instâncias Windows estão em visualização por convite. Para usar esse recurso, envie um ticket.
Pré-requisitos
A versão do Virtual Kubelet (componente ACK Virtual Node) no cluster deve ser v2.11.0-rc.0 ou posterior. Para mais informações, consulte Gerenciar componentes e ACK Virtual Node.
Limitações
Ao criar uma instância ECI baseada em Windows, o tipo de instância deve ter pelo menos 2 vCPUs e 4 GiB de memória. Tipos de instância acelerados por GPU, com discos locais ou baseados em ARM não são suportados.
A versão da imagem de contêiner Windows deve ser 10.0.20348.* (Windows Server 2022).
Adicionar um nó virtual Windows
Para adicionar um nó virtual Windows ao cluster, modifique o eci-profile.
-
Modifique o eci-profile.
kubectl edit -n kube-system cm/eci-profileNa seção data do eci-profile, defina enableWindowsAmd64Node como "true". O exemplo a seguir mostra a configuração:
data: ...... enableWindowsAmd64Node: "true" # Enable the Windows node. ...... -
Verifique se o nó virtual Windows foi criado.
kubectl get nodes -l kubernetes.io/os=windowsA saída confirma que os nós virtuais Windows foram criados automaticamente no cluster.
kubectl get nodes -l kubernetes.io/os=windows NAME STATUS ROLES AGE VERSION virtual-kubelet-cn-beijing-g-windows-amd64 Ready agent 34s v1.28.3-aliyun.1 virtual-kubelet-cn-beijing-h-windows-amd64 Ready agent 34s v1.28.3-aliyun.1
Criar um Pod Windows
Os nós virtuais Windows possuem o rótulo "kubernetes.io/os": windows. Use um nodeSelector para agendar o Pod em um nó virtual Windows. Isso cria um Pod ECI baseado em Windows para executar seus contêineres.
nodeSelector:
kubernetes.io/os: windows
Exemplo de YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-windows
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-with-eip: "true" # Associate an Elastic IP Address (EIP) to pull public images.
k8s.aliyun.com/eci-use-specs: "ecs.c6.4xlarge" # Specify the instance type.
spec:
containers:
- name: test
image: mcr.microsoft.com/windows/nanoserver:ltsc2022 # Use a Windows container image.
command: ["ping","-t","localhost" ]
nodeSelector:
kubernetes.io/os: windows # Schedule the Pod to the Windows virtual node.