关键两步+6个要点,让Windows应用程序享有K8S的绝佳优势

本文来自Rancher Labs

前? 言

实际上,没有一个迁移路径能够适用于将所有传统应用程序迁移到云。这些应用程序通常在物理机、虚拟机或本地。虽然一般情况下是重新设计应用程序架构以适用云原生服务,但这并非是唯一的答案。将一个现有的应用程序的架构重新构建为微服务架构或云原生架构会面临诸多挑战,如重构成本、复杂性以及应用程序的依赖性。

虽然将应用程序的架构现代化有诸多好处,但许多组织仍在Windows 2003 Servers上运行现有服务。而微软不再支持Windows 2003为此带来了一些挑战。首先,人们不得不开始决定要如何处理这些应用程序,特别是Windows 2008的生命周期也即将结束。

许多企业想要迁移到现代架构中,期望以此能让他们的应用程序获得复杂性、安全性和可用性。而容器提供了使应用程序现代化并将其移至云原声服务的灵活性。在本文中,我们将重点介绍能够迁移到容器的应用程序,一般是.Net、Web、SQL和其他没有依赖性但在Windows2003上运行的应用程序。你可以无需更改代码就能将这些应用程序迁移到容器,并且使它们在将来具备可移植性。你将会享受到在Kubernetes上运行容器的好处,如可编排、可用性、更高的弹性伸缩和密度。

请注意:不是所有的应用程序和服务都能运行在容器中。有些应用程序存在核心依赖项(如数据库、存储需求等),这些都需要解决。此外,需要根据业务决定应用程序的持续寿命。

商业层面:迁移到Kubernetes的优势

将这些应用程序迁移到容器有一些关键的业务原因,如:

  • 投资回报率高
  • 传统的基于Web的服务可以获得可移植性
  • 应用程序安全性提升
  • 节省企业重新评估现有应用程序的时间

既然Kubernetes支持Windows的worker节点,那么你可以迁移传统的Windows应用程序到现代架构中。Windows worker和Linux worker可以共存在同一个Kubernetes平台中,也就是说,运维团队可以适用同一套工具、实践以及过程。

Step1:分析从Windows迁移到K8S的过程

将传统应用程序迁移到Kubernetes需要大量的分析和计划。但是,有一些关键的实践是十分必要的,比如:

  • 分解应用程序:将应用程序拆分为原始形式,以了解哪些组件正在运行,它们如何运行以及它们的依赖关系
  • 发现应用程序提供的服务以及在数据、网络等方面产生的调用
  • 从应用程序中解耦出数据层
  • 确定并映射服务依赖项
  • 测试、测试再测试

Step2:规划从Windows到K8S的迁移过程

迁移到容器化、基于.Net的平台是一个复杂的流程,中间会涉及许多步骤。因此,在执行这一流程时需要做出一些关键的决定。以下过程提供了一些有关迁移旧Windows系统以在Kubernetes上运行的要求的指导。

  • 确定你的容器所需要的操作系统——Server Core或Nano Server。这需要根据应用程序的依赖项进行选择。
  • 遵循兼容性准则。运行Windows容器会为主机的OS版本和容器正在运行的基本镜像添加严格的兼容性规则。它们必须运行Windows 2019,因为容器及底层主机共享一个内核。截至成文时,仅支持服务器隔离进程。然而,很快会开始支持Hyper-V隔离(具体时间未知),这将有助于主机和容器的兼容。
  • 打包你的传统应用程序。
  • 使用应用程序包构建基于Docker的初始容器。
  • 在你所选择的仓库中部署一个新的Docker容器
  • 充分利用现有的DevOps工具(CI/CD构建和发布流水线)
  • 部署新的Windows应用程序到你所构建的支持Windows的Kubernetes环境中
  • 测试、测试,再测试

将Windows应用程序迁移至K8S的关键优势

通过从Windows迁移到Kubernetes,你的旧应用程序将享有你现有基于容器的应用程序的优势。此外,你的Windows容器也将会从Kubernetes平台本身获得优势。而且,它们可以使用Kubernetes生态中的工具和系统,包括安全性工具、服务网格、监控/告警等。

这些优势叠加在一起,可以让你处于有利地位,以便于对应用程序做出关键决策并发掘业务用例。对于无法迁移的应用程序,由于缺乏对底层操作系统的支持,因此你不能对此放任不管,仍然需要决定如何处理它们。而且由于没有其他可用的补丁或安全补救措施,因此你的企业容易受到漏洞和攻击,所以应该及时采取行动。

从Windows迁移到K8S的关键要点

  • 基于容器的解决方案可以节省成本
  • 容器减少依赖项并为应用程序提供可移植性
  • Docker已经是运行容器的事实标准,同时Kubernetes是容器编排引擎的事实标准
  • Kubernetes可以托管可伸缩、可靠且具有弹性的基于Windows容器的应用程序以及基于Linux的应用程序
  • 运行Kubernetes平台的组织可以将传统应用程序集成到他们的DevOps文化和工具中
  • 利用原生和基于生态系统的Kubernetes工具可以提高安全性并为传统应用程序增加额外的保护层

在Rancher 2.3中,GA了对Windows容器的支持。通过把Kubernetes的所有优势引入Windows,Rancher 2.3极大降低了企业使用Windows容器的复杂性,并为基于Windows遗留应用程序的现代化提供快捷的途径——无论这些程序是在本地运行还是在多云环境中运行。此外,Rancher 2.3还可以将它们容器化并将其转换为高效、安全和可迁移的多云应用程序,从而省去重写应用程序的工作。

作者简介

Kelly Griffin是基础架构,安全和微服务顾问,在提供企业解决方案方面拥有20多年的经验。他所服务过的企业遍布全球,包括澳大利亚、新加坡、新西兰等。他在使用Docker和Kubernetes的容器化方面有丰富的经验。

原文地址:https://www.cnblogs.com/rancherlabs/p/12360862.html

时间: 2024-11-15 10:36:46

关键两步+6个要点,让Windows应用程序享有K8S的绝佳优势的相关文章

挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的一种聚类算法,是BIRCH层次聚类算法的改进版本.可以应用于混合属性数据集的聚类,同时加入了自动确定最佳簇数量的机制,使得方法更加实用.本文在学习文献[1]和“IBM SPSS Modeler 15 Algorithms Guide”的基础上,融入了自己的理解,更详尽地叙述两步聚类算法的流程和细节.

MongoDB 操作手册CRUD 事务 两步提交

执行两步提交 概述 这部分提供了多记录更新或者多记录事务,使用两步提交来完成多记录写入的模板.另外,可以扩展此方法来提供rollback-like功能. 背景 MongoDB对于单条记录的操作是原子性的:但是涉及多条记录的操作却不是原子性的.由于记录可能是相当复杂,并且有内嵌记录,单记录原子性操作提供了实际中常用的必要支持. 除了单记录的原子性操作,还有许多情况需要多记录操作事务,当执行一个包含一些列操作的事务时,就有以下要求: 原子性:如果一个操作失败,事务中之前的操作需要回滚到之前的状态 一

Win7/Win8.1/Win10秘笈:两步开启登录信息显示win10专业版技巧

现在很多软件都有登录信息显示,比如桌面版QQ这项功能由来已久.事实上,Windows本身也有这个功能,只不过默认没开启,而且这项功能也是历史悠久,从Windows 2000时代就已经加入,XP/Vista/Win7/Win8.1均被保留,只不过很多朋友还不知晓而已.在Win10中,该功能依然存在,但需要用户修改注册表值来开启,Windows7/Windows 8.1亲测可用. 操作很简单,只需两步即可开启(真心是两步……),具体如下: 注意:某些第三方安全软件可能会拦截该操作,因为这算是“启动项

两步验证杀手锏:Java 接入 Google 身份验证器实战

两步验证 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见不鲜,所以苹果都建议大家开启两步验证的. Google 的身份验证器一般也是用于登录进行两步验证,和苹果的两步验证是同样的道理.只不过 Google 的身份验证器用得更多更广泛,如 GitHub 的两步验证都是基于 Google 身份验证器. Google Authenticator 简介 Google Authenticator 身份验证器是一款基于时间与哈希的一次性密码算法的

华为机试题 N阶楼梯的走法,每次走一步或者两步

在Stairs函数中实现该功能: 一个楼梯有N阶,从下往上走,一步可以走一阶,也可以走两阶,有多少种走法? (0<n<=30)<> 例如3阶楼梯有3种走法: 1.1.1 1.2 2.1 输入样例: 3 返回值样例: 3 思路:这是最典型的类似斐波那契数列的变型.N阶楼梯,第一步有两种走法,1.走一步,则剩下N-1级      2,走两步,剩下N-2级      所以f(n)=f(n-1)+f(n-2) public static int ways(int n){ if(n==1)

Mac系统下使用VirtualBox虚拟机安装win7--第三步 在虚拟机上安装 Windows 7

第三步 在虚拟机上安装 Windows 7 等待虚拟机进入 Windows 7 的安装界面以后,在语言,货币,键盘输入法这一面,建议保持默认设置,直接点击“下一步”按钮,如图所示 接下来点击“现在安装”按钮,如图所示 在协议条款中,勾选我同意,点击“下一步”按钮,如图所示 在安装系统的类型中,选择“自定义”一项,如图所示 在安装系统的磁盘选项中,直接点击“下一步”按钮就好,如图所示 随后系统会自动在虚拟机上安装了,后面按提示选择操作就可以了. 由于使用的 Windows 安装镜像文件的不同,可能

【转】两步实现超实用的XML存档 易使用,跨平台,防作弊(内容加密 + 防拷贝)

转载自风宇冲Unity3D教程学院 两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameData

100个台阶,一次走一步,走两步,走三步,有多少种可能

分析 第一个台阶  1第二个台阶  11 2    //走两次1步或者走1次两步第三个台阶  111 12 21 3 第四个台阶  1111 112 121 211 22 13 31f(n)=f(n-1)+f(n-2)+f(n-3)  第n个台阶的可能 = n-1台阶的可能+n-2台阶的可能+n-3台阶的可能 我这里采用了递归算法 //param x 台阶数目 int goadd(int x) { if (x == 1){ return 1; } else if (x == 2){ return

U3D教程宝典之两步实现超实用的XML存档

两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1)新建一个GameObject,起名GameDataManager并将GameDataManager脚本拖到上面.(2)在GameDataManager里的GameData类中添加需要储存的数据OK,跨平台防破解防拷贝的存档就搞定了!之后每次存档调用GameDataManager的Save函数,读档调