暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kubernetes遇见Wercker-下

1362

Kubernetes是谷歌贡献的容器编排与管理自动化的开源平台,经过近两年的发展,已经成为容器编排领域的事实标准。我们如何在本地快速部署Kubernetes集群?如何在上面开发和部署应用?应该遵循怎样的流程?本系列文章将通过一个完整的流程,展示如何在本地快速构建单机版Kubernetes集群,如何通过容器化的CI/CD平台Wercker将Spring Boot应用打包成Docker 镜像发布到Docker Hub镜像仓库,以及如何将镜像运行在Kubernetes集群中。

本文将展示如何通过Kubernetes YAML文件将werker-springboot应用部署在本地Kubernetes 集群。

所有相关代码托管在:https://github.com/georgexiang/wercker-springboot.git.

Kubernetes Deployment Service概念介绍

在“Kubernetes遇到Wercker-上”,我们一直仅仅通过命令行创建资源,但是这里有一个更加有效的方式去创建资源:通过使用YAML创建一个配置文件。在这篇文章,我们将会关注YAML的工作方式以及如何使用YAML创建一个Kubernetes Deployment,然后使用Kubernetes创建一个Service。

YAML,它代表着另一种标志语言,或者YAML不是标志语言,而是特定配置类型基于人类可读的文本格式的信息,例如,在本文中,我们将会分开说说明YAML定义创建Depolyment和Service。

使用YAML用于Kubernetes的定义将给你一些好处,包括:

  • 便捷性:你将不再需要添加大量的参数到命令行中执行命令

  • 可维护性:YAML文件可以通过源头控制,可以跟踪每次的操作

  • 灵活性:通过YAML你将可以创建比命令行更加复杂的结构

 

Kubernetes 组件中,Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的Deployment等功能,在某种程度上,Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。

下面是Deployment的典型用例:

  • 使用Deployment来启动(上线/部署)一个Pod或者ReplicaSet

  • 检查一个Deployment是否成功执行

  • 更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Image)

  • 如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本

  • 暂停或者恢复一个Deployment

Kubernetes 组件中,Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制,关联多个相同Label的Pod,用户不需要了解后台Pod是如何运行。

wercker-springboot.yaml 配置文件

wercker-springboot.yaml配置文件包含两个component Deployment和Service,Deployment使用“index.docker.io/georgexiang/wercker-springboot”的镜像,容器副本(replicas)数目为3. Service 通过selector 选择相应的app ,暴露服务,使用30080端口,对外提供服务。运行命令:

kubectl create -f D:\OFM\Project\wercker-springboot\wercker-springboot.yaml

查看应用:

由于配置文件中指定了Service的端口,直接访问:http://192.168.99.100:30080/

与运行在本地NetBeans环境中的程序进行对比,发现应用修改已经完成。

通过kubectl 命令行,查看Pods、Deployment、Service正常运行。应用部署成功,运行正常。

通过Kubernetes YAML文件将werker-springboot应用部署在本地Kubernetes 集群操作完成。至此,本系列文章展示了如何快速构建Kubernetes集群,通过Wercker将应用打包成Docker镜像,运行在Kubernetes集群上。

作者简介

向志华,Oracle云平台高级售前顾问,专注 Application Development PaaS 产品及服务,同时关注Docker容器产品及Kubernetes容器调度产品方向。13年IT行业从业经验,擅长J2EE产品架构及开发。加入Oracle之前,供职于IBM,参与过OpenStack相关产品研发工作。您可以通过george.xiang@oracle.com,与他联系。


了解更多,敬请关注甲骨文开发者社区......

文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论