一小时快速搭建基于阿里云容器服务-Kubernetes的Web应用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如果您是一个Kubernetes的初学者,本文可以帮助你快速在云上搭建一个可实际使用的集群环境,并发布自己的第一个应用。你无须提前准备任何的硬件资源或者下载任何的软件包。 如果您已经有一个自建的Kubernetes集群,想要尝试阿里云上的托管集群,本文可以帮助你快速完成上手操作,而无需详细阅读阿里云的帮助文档,从而节省您的时间。

原创作者: 云普

本文面向的读者

如果您是一个Kubernetes的初学者,本文可以帮助你快速在云上搭建一个可实际使用的集群环境,并发布自己的第一个应用。你无须提前准备任何的硬件资源或者下载任何的软件包。
如果您已经有一个自建的Kubernetes集群,想要尝试阿里云上的托管集群,本文可以帮助你快速完成上手操作,而无需详细阅读阿里云的帮助文档,从而节省您的时间。您可以在有了端到端的初体验之后,再有选择的阅读容器服务和容器镜像服务的帮助文档。
如果你已经有一个传统的部署在云上的Web应用(比如部署在云上的ECS里),想要进行容器化的改造,本文同样可以帮助到您,您甚至无需深入学习Kubernetes,只需了解基本概念即可。

准备代码

本文的操作全部基于阿里云控制台,因此您只需要一个阿里云控制台的登录账号即可。
我们先把应用的代码准备好。请登录https://code.aliyun.com/ ,登录完成后,访问https://code.aliyun.com/shengbo.tsb/yunputest ,点击派生项目(fork)的图标。
1.png

在随后弹出的确认框里,点击头像确认,完成派生。
2.png

备选方案:如果您派生遇到了困难,可以直接从https://github.com/docker-training/webapp clone这个项目,然后自己通过git push到code.aliyun.com上。

准备镜像仓库

登录https://cr.console.aliyun.com/cn-beijing/instances/repositories
在左侧导航栏选择“命名空间”
3.png

点击“创建命令空间”,输入名字“tengshengbo”。
4.png
确认命名空间创建完成之后,点击左侧导航栏“镜像仓库”,点击“创建镜像仓库”,输入仓库名称“yunputest”
5.png

在下一步,选择刚刚建立的代码仓库。选择“海外机器构建”以加快构建速度。提示:如果下拉框没有代码仓库,点击右侧的刷新按钮。
6.png

创建新镜像

回到https://code.aliyun.com/ 点击yunputest这个项目,注意,是自己名下的项目,而不是shengbo.tsb这个账号名下的项目。 点击“新标签”.

7.png

输入标签名release-v1.5。注意,您必须使用release-v[版本号]形式,比如release-v2.5或者其他。
8.png

返回镜像仓库列表,https://cr.console.aliyun.com/cn-beijing/instances/repositories
选择自己的镜像仓库,左侧导航选择“构建”,可以看到一个构建自动生成了。
9.png

创建Kubernetes集群

访问容器服务控制台 https://cs.console.aliyun.com/#/k8s/cluster/list
选择“创建Kubernetes集群”, 集群模板选择第一个“标准托管集群”
10.png

集群名称选择“yunpu-k8s”,选择专有网络和虚拟交换机,勾选公网访问(为了开发测试方便),选择实例类型(如果不考虑性能,单纯为了省钱,可以使用t5或者t6实例),其他默认就好。
11.png

注意:Pod CIDR,Service CIDR不能与VPC内已有网段冲突,如果提示有错误,请更换网络的CIDR。
12.png

在确认对话框里勾选协议,完成创建。之后,确认自己的集群运行中。
13.png

部署第一个应用

容器服务的左侧导航栏选择“应用-无状态”,点击“使用镜像创建”,在“应用基本信息”这一部分, 输入应用名称yunpuapp, 选择刚创建的集群yunpu-k8s, 其他默认。
14.png

下一步,容器配置,镜像名称一项,点击“选择镜像”,选择刚才自动从代码创建的镜像
15.png

镜像Tag一项,点击“选择镜像Tag”,选择你刚刚自己定义的版本号,比如1.4。其他保持默认。
点击下一步。
16.png

在高级配置里面,点击“服务(Service)”旁边的“创建”,
17.png

端口映射一项,输入名称port,注意服务端口80,容器端口5000.
18.png

点击“路由(Ingress)”旁边的“创建”,输入域名yunpuapp选择刚刚创建的服务以及port。
19.png

创建成功之后,可以看到应用的访问方式,在“路由(Ingress)”里面,“规则”一项,有一个链接。
20.png

点击这个链接,可以访问应用,显示内容包含响应时间、应用运行时的host name以及IP地址。多次刷新链接,可以看到不同的ip地址,这个说明后面对应的容器组Pod是多个。
21.png

升级应用

建议您自行尝试更改应用的代码,比如简单更改webapp/app.py这个文件,完成git tag后,git push.

$ git tag release-v1.5
$ git push origin release-v1.5

或者,您也可以直接在 https://code.aliyun.com/ 控制台上,为master分支新建标签release-v1.5

等待镜像更新完成后,在“无状态应用”页,点击应用旁边的“编辑”。
22.png

编辑页面,选择新的版本1.5,点击更新
23.png

下一步

阿里云的容器服务Kubernetes不是只有托管版,还有专有版和Serverless版。专有版适合有丰富的容器运维经验,希望长时间运行某个应用,并且独立自主运维全部基础设施的的大企业用户。Serverless版适合不希望关心基础设施的运维,或者只是短时间运行某个应用从而希望开箱即用的中小企业用户。本文介绍的托管版则介于专有版和Serverless版两者之间。

如果您想了解更多,建议参考以下资料:
容器服务Kubernetes版帮助文档: https://help.aliyun.com/product/85222.html
容器镜像服务帮助文档: https://help.aliyun.com/product/60716.html

如果您需要针对容器服务进行运维,参考以下资料:
运维编排:
https://help.aliyun.com/product/119529.html
资源编排:
https://help.aliyun.com/product/28850.html

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
15天前
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
|
16天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
1天前
|
XML 存储 安全
LabVIEWCompactRIO 开发指南23 Web服务
LabVIEWCompactRIO 开发指南23 Web服务
|
1天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
|
1天前
|
JSON 数据格式 Windows
LabVIEW创建Web服务
LabVIEW创建Web服务
|
2天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes详解(六)——Pod对象部署和应用
在Kubernetes系列中,本文聚焦Pod对象的部署和管理。首先,通过`kubectl run`命令创建Pod,如`kubectl run pod-test --image=nginx:1.12 --port=80 --replicas=1`。接着,使用`kubectl get deployment`或`kubectl get pods`查看Pod信息,添加`-o wide`参数获取详细详情。然后,利用Pod的IP地址进行访问。最后,用`kubectl delete pods [Pod名]`删除Pod,但因Controller控制器,删除后Pod可能自动重建。了解更多细节,请参阅原文链接。
9 5
|
5天前
|
Kubernetes Cloud Native 持续交付
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
【5月更文挑战第7天】本文探讨了Docker和Kubernetes如何协同构建和管理云原生应用。Docker提供容器化技术,Kubernetes则负责容器的部署和管理。两者结合实现快速部署、自动扩展和高可用性。通过编写Dockerfile创建镜像,然后在Kubernetes中定义部署和服务进行应用暴露。实战部分展示了如何部署简单Web应用,包括编写Dockerfile、构建镜像、创建Kubernetes部署配置以及暴露服务。Kubernetes还具备自动扩展、滚动更新和健康检查等高级特性,为云原生应用管理提供全面支持。
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
|
5天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
6天前
|
Kubernetes Cloud Native 持续交付
构建高效云原生应用:Kubernetes与微服务架构的融合
【5月更文挑战第6天】 在数字化转型的浪潮中,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文深入探讨了如何利用Kubernetes这一领先的容器编排平台,结合微服务架构,构建和维护高效、可伸缩的云原生应用。通过分析现代软件设计原则和最佳实践,我们提出了一个综合指南,旨在帮助开发者和系统架构师优化云资源配置,提高部署流程的自动化水平,并确保系统的高可用性。
28 1
|
12天前
|
缓存 监控 测试技术
【Go语言专栏】使用Go语言构建高性能Web服务
【4月更文挑战第30天】本文探讨了使用Go语言构建高性能Web服务的策略,包括Go语言在并发处理和内存管理上的优势、基本原则(如保持简单、缓存和并发控制)、标准库与第三方框架的选择、编写高效的HTTP处理器、数据库优化以及性能测试和监控。通过遵循最佳实践,开发者可以充分利用Go语言的特性,构建出高性能的Web服务。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版