云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名注册_node连接数据库_学生机

小七 141 0

CloudBees CI支持Google Kubernetes Engine(GKE)上的Windows容器

从v1.14开始,对Windows容器的支持一直是Kubernetes的一个稳定部分,这意味着您可以拥有一个由Windows服务器组成的节点池,并创建在该池中运行的pod。(您也可以拥有同时包含Windows和Linux节点池的多平台集群。)我们将了解如何使用CloudBees CI(以前称为CloudBees Core)来定义应该在Windows节点上运行的Jenkins管道任务,以自动化多平台开发工作。可以找到这篇博客文章的视频摘要下面是注释:这是一篇博客文章,不是官方技术文档。从今天(2020年5月1日)起,以下说明将适用于CloudBees CI 2.222.1.1版。随着GKE的Windows节点支持从快速发布渠道转移,您可能需要改变您看到的内容here.setup创建我们将从命令行创建一个集群从头开始。Windows节点支持要求我们使用gcloud beta和快速发布频道。下面是命令:$gcloud beta container clusters create[CLUSTER\u NAME]\--启用ip别名\--节点数=2\--释放通道=快速\--机器类型=n1-standard-2指定n1-standard-2的机器类型也很重要。Jenkins执行器需要两个核心,因此n1-standard-1的默认机器类型无法工作。最后,Windows节点需要别名IP,因此我们需要--enable IP alias选项作为好吧。创造默认情况下,集群有一个Linux节点池。我们需要基于Windows映像创建一个新的节点池。下面是命令:$gcloud container node pools create[node\u POOL\u NAME]\--集群=[集群名称]\--图像类型=WINDOWS\u LTSC\--启用自动升级--machine type=n1-standard-2由于我们不在这里讨论的原因,我们需要指定Windows映像类型Windows\u LTSC。有关不同级别和类型的窗口的详细信息,请参阅Windows容器版本兼容性图像。安装Core创建了集群和节点池之后,我们将假设您可以从这里安装Core。如果您需要任何帮助,googlekubernetesengine(GKE)上的CloudBees Core安装指南是一本很棒的指南资源。正在运行一个简单的管道现在一切都准备好了,让我们定义一个新的管道。为了确保一切正常,我们将从一个简单的Linux管道开始:podTemplate{node(POD_LABEL){sh'cat/etc/os release'}}这只是在Linux节点上打印/etc/os release文件。你的结果会是这样的:。在simple-1-4ft20-k3n1h-0sj97上运行/home/jenkins/agent/workspace/simple[管道]{[管道]sh+cat/etc/os释放NAME="Red Hat Enterprise Linux"VERSION="8.1(Ootpa)"ID="rhel"ID悻LIKE="软呢帽"版本_ID="8.1"平台编号="站台:el8"PRETTY_NAME="Red Hat Enterprise Linux 8.1(Ootpa)". . .REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"REDHAT_SUPPORT_PRODUCT_VERSION="8.1". . . 人群变得疯狂。我们没有podTemplate的配置;我们只是使用现成的东西,没有其他定制。没有容器步骤,因此shell命令在与Jenkins代理相同的容器中运行。这个容器基本上只是一个带有Java运行时环境和代理JAR的通用基础映像,所以没有太多好了。跑需要Windows节点的管道当然,主要事件是创建一个使用Windows节点完成一些工作的管道。这是一个样品管道:podTemplateyaml:""(亚马尔)API版本:v1种类:吊舱规格:容器:-名称:jnlp图片:jenkins/jnlp-代理:最新的windows-名称:壳牌图片:mcr.microsoft.com/powershell:预览-windowsservercore-1809命令:-powershell参数:-开始睡眠-999999个节点选择器:kubernetes.io/os:窗口''') {节点(吊舱标签){容器('外壳'){powershell"Get ChildItem Env:|排序名称"}}}在本例中,我们有一些YAML,它定义了要使用的两个映像,指定需要在Windows节点上运行的东西,然后调用PowerShell命令。YAML定义了两个Kubernetes容器。第一个jnlp包含Jenkins用来启动事件的jnlp代理。第二个shell使用来自Microsoft容器注册表(mcr)的映像。这是我们将用来运行powershell的Windows映像。我们将该映像的命令和一些参数定义为好吧。那个这里最关键的部分是YAML部分末尾的nodeSelector。这告诉Kubernetes为这个管道创建的任何节点都应该是Windows节点。在那里,管道简单地使用shell容器运行PowerShell命令,该命令打印中所有环境变量的排序列表壳牌。给你这是从结果中摘录的:"windows2-1-vnwz3-krkxc-b6bh7"处于脱机状态代理windows2-1-vnwz3-krkxc-b6bh7是从模板windows2_1-vnwz3-krkxc配置的---API版本:"v1"种类:"吊舱"元数据:. . .在/home/jenkins/agent/workspace/windows2中的windows2-1-vnwz3-krkxc-b6bh7上运行[管道]{[管道]容器[管道]{[管道]powershell名称值---- -----ALLUSERSPROFILE C:\ProgramData. . .内部版本显示名称1内部版本号1构建编号1构建标签jenkins-windows2-1CJOC_港tcp://10.0.55.129:80分. . . 如您所见,管道配置了一个Windows节点并在其上运行请求的代码。一个真实的例子可以从存储库中提取代码,然后针对它运行特定于Windows的构建工具。从单个源管理多平台CI环境是非常困难的很有力。感谢作者要感谢jesseglick、benrich和kennethrogers在撰写本文时提供的技术支持和建议。