zoukankan      html  css  js  c++  java
  • 一小时快速搭建基于阿里云容器服务-Kubernetes的Web应用

    本文面向的读者

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

    准备代码

    本文的操作全部基于阿里云控制台,因此您只需要一个阿里云控制台的登录账号即可。 

    我们先把应用的代码准备好。请登录https://code.aliyun.com/ ,登录完成后,访问https://code.aliyun.com/shengbo.tsb/yunputest ,点击派生项目(fork)的图标。 

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

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

    准备镜像仓库

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

    点击“创建命令空间”,输入名字“tengshengbo”。 

    确认命名空间创建完成之后,点击左侧导航栏“镜像仓库”,点击“创建镜像仓库”,输入仓库名称“yunputest” 

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

    创建新镜像

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

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

    返回镜像仓库列表,https://cr.console.aliyun.com/cn-beijing/instances/repositories 

    选择自己的镜像仓库,左侧导航选择“构建”,可以看到一个构建自动生成了。 

    创建Kubernetes集群

    访问容器服务控制台 https://cs.console.aliyun.com/#/k8s/cluster/list 

    选择“创建Kubernetes集群”, 集群模板选择第一个“标准托管集群” 

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

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

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

    部署第一个应用

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

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

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

    点击下一步。 

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

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

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

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

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

    升级应用

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

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

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

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

    下一步

    阿里云的容器服务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

    本文作者:云普

    原文链接

    本文为阿里云内容,未经允许不得转载。

  • 相关阅读:
    常用排序算法
    eclipse下切换svn用户和 svn插件的使用
    随机红包算法(Java)
    Java中值类型和引用类型的区别?
    CSS引入的方式有哪些? link和@import的区别是?
    在orale中向左/向右填充字符
    select查看oracle表中列的数据类型
    比较使用DateTimePicker组件Delphi 7日期
    【转】Delphi中字符串的处理
    用MySQL 数字类型如何正确的转换函数
  • 原文地址:https://www.cnblogs.com/zhaowei121/p/12162509.html
Copyright © 2011-2022 走看看