阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

阿里云容器服务已正式发布Windows Container支持,用户可通过控制台或Open API创建Windows Kubernetes集群并部署Windows容器,目前已开放新加坡、吉隆坡等区域,近期计划在所有托管版中全域支持。

在现今企业服务器OS市场,Windows依然占据半壁*,其市场分额达60%之多,把Windows应用搬站上云不仅仅是基础设施的迁移,更重要的是通过Kubernetes等云原生技术让传统的Windows应用架构体系升级,充分利用云上的弹性、敏捷等能力,实现业务应用的快速迭代和交付。

阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

阿里云容器服务ACK通过Windows容器的支持,帮助企业轻松实现Windows容器应用的部署,其兼容kubernetes标准,支持cpu/memory资源编排,支持deployment/statefulset/job/cronjob等应用部署模型。同时用户可以添加Linux节点,实现Linux/Windows应用混合部署的统一管理。

阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

下面我们一起体验下如何创建Windows集群和部署示例应用。

1. 登陆ACK控制台创建Windows集群

登陆ACK控制台:https://cs.console.aliyun.com/,选择新加坡Region,节点类型选择Windows
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

创建集群后,等待约10分钟,集群创建成功。
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

进入Deployment页面,可以看到kube-system命名空间下已经默认安装了coredns addon,提供集群内的服务发现能力。
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

我们也可选择通过Cloudshell中的kubectl命令操作集群:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

2. 部署Windows Web Server示例应用

登陆控制台使用模版创建aspnet的deployment和service(也可通过控制台分别创建各资源)。
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

拷贝yaml到编辑页面:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

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:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

查看容器组pod:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

在容器组页面也可查看pod的事件和日志。

查看创建的服务Service,以及暴露的公网SLB访问地址:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

点击公网IP地址,即可访问aspnet服务。

请注意,目前只支持Windows Server 2019 (1809),这也是官方唯一支持的windows版本,所以Windows容器镜像需要基于1809基础镜像构建,否则容器可能无法在Windows节点中正常运行。

3. 集群扩容(添加Windows节点)

在ACK集群控制台点击“集群扩容”就可以灵活的添加更多节点:
阿里云容器服务ACK发布Windows Container支持,让Windows应用快速上云

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容器云上基础设施。欢迎使用。

上一篇:SVN 向 GIT 进行转换如何拉取所有提交记录


下一篇:IntelliJ IDEA 13.x 下使用Hibernate + Spring MVC + JBoss 7.1.1