ECI已支援作業系統為Windows的執行個體。如果您的容器需要運行在Windows環境,您可以在叢集中添加Windows虛擬節點,並將Pod調度到該虛擬節點上,即可建立出作業系統為Windows的ECI Pod(即ECI執行個體)來運行容器。
重要
Windows執行個體正在邀測中,如需使用,請提交工單申請。
前提條件
叢集中的VK(ACK Virtual Node組件)版本為v2.11.0-rc.0及以上版本。更多資訊,請參見管理組件和ACK Virtual Node。
使用限制
建立作業系統為Windows的ECI執行個體時,vCPU和記憶體必須大於等於2 vCPU,4 GiB記憶體,並且不支援GPU、本地碟和ARM規格。
Windows容器鏡像的版本號碼需要滿足10.0.20348.*,即Windows Server 2022。
添加Windows虛擬節點
您可以通過以下步驟修改eci-profile,在叢集中添加Windows虛擬節點。
修改eci-profile。
kubectl edit -n kube-system cm/eci-profile
在eci-profile的data中將enableWindowsAmd64Node配置為true,樣本如下:
data: ...... enableWindowsAmd64Node: "true" #啟用Windows節點 ......
查看叢集中是否已有Windows虛擬節點。
kubectl get nodes -l kubernetes.io/os=windows
預期返回如下,可以看到叢集已自動產生Windows虛擬節點。
建立作業系統為Windows的Pod
由於Windows虛擬節點帶有"kubernetes.io/os": windows
的標籤,建立ECI Pod時,可以通過nodeSelector來指定Windows虛擬節點,將Pod調度到Windows虛擬節點上運行,即建立出作業系統為Windows的ECI Pod來運行容器。
nodeSelector:
kubernetes.io/os: windows
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" # 綁定EIP以便拉取公網鏡像
k8s.aliyun.com/eci-use-specs: "ecs.c6.4xlarge" # 指定規格
spec:
containers:
- name: test
image: mcr.microsoft.com/windows/nanoserver:ltsc2022 # 使用Windows容器鏡像
command: ["ping","-t","localhost" ]
nodeSelector:
kubernetes.io/os: windows # 調度到Windows虛擬節點