阿里云容器服务已正式发布Windows Container支持,用户可通过控制台或Open API创建Windows Kubernetes集群并部署Windows容器,目前已开放新加坡、吉隆坡等区域,近期计划在所有托管版中全域支持。
在现今企业服务器OS市场,Windows依然占据半壁江山,其市场分额达60%之多,把Windows应用搬站上云不仅仅是基础设施的迁移,更重要的是通过Kubernetes等云原生技术让传统的Windows应用架构体系升级,充分利用云上的弹性、敏捷等能力,实现业务应用的快速迭代和交付。
阿里云容器服务ACK通过Windows容器的支持,帮助企业轻松实现Windows容器应用的部署,其兼容kubernetes标准,支持cpu/memory资源编排,支持deployment/statefulset/job/cronjob等应用部署模型。同时用户可以添加Linux节点,实现Linux/Windows应用混合部署的统一管理。
下面我们一起体验下如何创建Windows集群和部署示例应用。
1. 登陆ACK控制台创建Windows集群
登陆ACK控制台:https://cs.console.aliyun.com/,选择新加坡Region,节点类型选择Windows
创建集群后,等待约10分钟,集群创建成功。
进入Deployment页面,可以看到kube-system命名空间下已经默认安装了coredns addon,提供集群内的服务发现能力。
我们也可选择通过Cloudshell中的kubectl命令操作集群:
2. 部署Windows Web Server示例应用
登陆控制台使用模版创建aspnet的deployment和service(也可通过控制台分别创建各资源)。
拷贝yaml到编辑页面:
yaml文件如下:
apiVersion: v1
kind: Service
metadata:
name: aspnet-svc
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: aspnet
type: LoadBalancer
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: aspnet
spec:
selector:
matchLabels:
app: aspnet
template:
metadata:
labels:
app: aspnet
spec:
containers:
- image: 'microsoft/dotnet-samples:aspnetapp'
name: aspnet
创建成功后查看deployment:
查看容器组pod:
在容器组页面也可查看pod的事件和日志。
查看创建的服务Service,以及暴露的公网SLB访问地址:
点击公网IP地址,即可访问aspnet服务。
请注意,目前只支持Windows Server 2019 (1809),这也是官方唯一支持的windows版本,所以Windows容器镜像需要基于1809基础镜像构建,否则容器可能无法在Windows节点中正常运行。
3. 集群扩容(添加Windows节点)
在ACK集群控制台点击“集群扩容”就可以灵活的添加更多节点:
4. 添加Linux节点(实现混合节点集群)
ACK Windows集群支持用户手动添加Linux节点,从而实现Linux节点和Windows节点的混合部署,在集群中可以灵活部署Linux相关的服务,提供更强大的集群应用扩展和定制能力。
Windows节点中的pod与Linux节点中的pod可以互联互通,Service访问也一切正常。
通过Linux节点的加入,可以弥补Windows容器的一些限制,比如在Windows集群中部署Helm Tiller比较有困难,我们可以添加一个Linux节点,把Tiller部署在Linux节点上, 这样就可以无缝安装各种Windows的Helm Chart。同理,对于很多比较难以改造成Windows版本的容器应用服务,都可以采用添加Linux节点的方式解决,比如nginx-ingress-controller,Istio等。
注意:当集群中同时包含Linux和Windows节点时,需要通过nodeSelector决定pod的调度节点:
Linux nodeSelector:beta.kubernetes.io/os: linux
Windows nodeSelector:
beta.kubernetes.io/os: windows
5. Windows Container的使用约束
- 镜像的版本需要与Windows build号(当前为1809)保持一致
- 暂时不支持Host Network
6. 更多支持计划
我们将会为Windows集群持续添加更多功能,与阿里云生态深度集成,完善和优化Windows容器应用的云上部署体验,打造稳定安全的Windows容器云上基础设施。欢迎使用。