在ACS集群的Windows节点上执行自定义PowerShell脚本时,需要创建Windows容器Pod并配置合适的启动命令。本文介绍如何创建运行PowerShell脚本的Windows Server Pod,并验证脚本执行结果。
前提条件
集群已创建Windows虚拟节点。详细步骤,请参考在ACS集群中创建Windows工作负载。
创建Windows Server Pod
创建一个Windows容器的Job,通过PowerShell脚本输出一行日志。
控制台
登录容器计算服务控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 任务。
在任务页面,单击使用YAML创建资源。将以下YAML内容复制到编辑器中,然后单击创建。
apiVersion: batch/v1 kind: Job metadata: name: windows-job-powershell spec: backoffLimit: 0 template: metadata: labels: job-name: windows-job-powershell alibabacloud.com/acs: "true" spec: nodeSelector: kubernetes.io/os: windows # 确保调度到 Windows 节点 restartPolicy: Never containers: - name: test image: registry-cn-hangzhou.ack.aliyuncs.com/test/servercore:ltsc2022 command: - powershell.exe - -NoProfile - -ExecutionPolicy - Bypass - -Command - | Write-Host "Hello from Windows Job" Start-Sleep -Seconds 3600 resources: requests: cpu: "4" memory: "8Gi" limits: cpu: "4" memory: "8Gi"创建完成后,在弹出的对话框中单击查看,确认Pod状态为Running。
kubectl
已使用kubectl连接Kubernetes集群。具体操作,请参见获取集群kubeconfig并通过kubectl工具连接集群。
将以下YAML内容保存为
windows-job-powershell.yaml文件。apiVersion: batch/v1 kind: Job metadata: name: windows-job-powershell spec: backoffLimit: 0 template: metadata: labels: job-name: windows-job-powershell spec: nodeSelector: kubernetes.io/os: windows # 确保调度到 Windows 节点 restartPolicy: Never containers: - name: test image: registry-cn-hangzhou.ack.aliyuncs.com/test/servercore:ltsc2022 command: - powershell.exe - -NoProfile - -ExecutionPolicy - Bypass - -Command - | Write-Host "Hello from Windows Job" Start-Sleep -Seconds 3600 resources: requests: cpu: "4" memory: "8Gi" limits: cpu: "4" memory: "8Gi"执行以下命令创建Job。
kubectl apply -f windows-job-powershell.yaml执行以下命令确认Pod状态为
Running。kubectl get job windows-job-powershell预期输出:
NAME STATUS COMPLETIONS DURATION AGE windows-job-powershell Running 0/1 8m50s 8m50s
验证脚本执行结果
控制台
在集群详情页左侧导航栏,选择工作负载 > 任务。
在任务页面单击目标任务名称,进入任务详情页。切换到日志标签页,展示结果如下表示脚本运行成功。
Hello from Windows Job
kubectl
执行以下命令,在Pod内部查看日志文件内容。
kubectl logs job/windows-job-powershell预期输出:
Hello from Windows Job资源清理
测试完成后,执行以下命令删除创建的Pod资源。
kubectl delete job windows-job-powershell该文章对您有帮助吗?