Elastic Container Instance (ECI) es compatible con instancias basadas en Windows. Si sus contenedores requieren un entorno Windows, agregue un nodo virtual Windows a su clúster y programe pods en él. Esta acción crea pods ECI basados en Windows (instancias ECI) para ejecutar sus contenedores.
Las instancias Windows se encuentran en vista previa por invitación. Para utilizar esta función, envíe un ticket.
Requisitos previos
La versión de Virtual Kubelet (el componente ACK Virtual Node) en su clúster debe ser v2.11.0-rc.0 o posterior. Para obtener más información, consulte Manage components y ACK Virtual Node.
Limitaciones
Al crear una instancia ECI basada en Windows, el tipo de instancia debe contar como mínimo con 2 vCPU y 4 GiB de memoria. No son compatibles los tipos de instancia acelerados por GPU, los tipos de instancia con discos locales ni los tipos de instancia basados en ARM.
La versión de la imagen del contenedor Windows debe ser 10.0.20348.* (Windows Server 2022).
Agregar un nodo virtual Windows
Para agregar un nodo virtual Windows a su clúster, modifique eci-profile.
-
Modifique eci-profile.
kubectl edit -n kube-system cm/eci-profileEn la sección data de eci-profile, establezca enableWindowsAmd64Node en "true". A continuación se muestra un ejemplo de la configuración:
data: ...... enableWindowsAmd64Node: "true" # Enable the Windows node. ...... -
Compruebe que se haya creado el nodo virtual Windows.
kubectl get nodes -l kubernetes.io/os=windowsEl resultado confirma que los nodos virtuales Windows se crearon automáticamente en el clúster.
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
Crear un pod Windows
Los nodos virtuales Windows tienen la etiqueta "kubernetes.io/os": windows. Utilice nodeSelector para programar el pod en un nodo virtual Windows. Esta acción crea un pod ECI basado en Windows para ejecutar sus contenedores.
nodeSelector:
kubernetes.io/os: windows
Ejemplo 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.