ACK Serverless搭建企业级网站应用

ACK Serverless搭建企业级网站应用        

 

通过ACK Serverless搭建企业级网站应用”实验,本实验是“云原生容器Clouder系列认证”中的阶段二实验。

当容器应用日渐增多且容器间的调用关系越来越复杂时,在服务器上直接部署容器应用将使日常的管控工作变的困难。为了简化复杂的分布式应用程序管理、提高资源利用率、实现弹性伸缩并保障容器的服务发现和负载均衡,有必要使用容器编排来管控我们的容器应用。

 

容器服务 Serverless 版 ACK Serverless 是一款基于阿里云弹性计算基础架构,同时完全兼容 Kubernetes 生态,安全、可靠的容器产品。通过该产品,您无需管理和维护集群即可快速创建 Kubernetes 容器应用,并且根据应用实际使用的 CPU 和内存资源量进行按需付费,从而使您更专注于应用本身,而非运行应用的基础设施。

阿里云弹性容器实例(Elastic Container Instance)是 Serverless 和容器化的弹性计算服务。您无需管理底层 ECS 服务器,只需要提供打包好的镜像,即可运行容器,与阿里云容器服务无缝对接并仅为容器实际运行消耗的资源付费。

可观测监控 Prometheus 版作

 

为云原生指标监控平台,完整兼容 Prometheus 开源生态,为运维工程师、SRE工程师等不同角色提供一站式指标观测平台,满足业务自定义监控 / 应用组件监控 / 云服务监控 / 容器监控 / 系统监控等场景的监控、告警需求。

 
 

当容器应用日渐增多且容器间的调用关系越来越复杂时,在服务器上直接部署容器应用将使日常的管控工作变的困难。为了简化复杂的分布式应用程序管理、提高资源利用率、实现弹性伸缩并保障容器的服务发现和负载均衡,有必要使用容器编排来管控我们的容器应用。

本次实验任务实现了将容器化的应用快速发布到阿里云ASK集群中,并实现外部访问,同时在ASK集群中进行应用的管理和运维,来体验低门槛高效率的容器服务管理平台。实验主要分为以下几个步骤:

  • ASK集群创建
  • 通过镜像在ASK中部署无状态容器应用
  • 配置数据持久化(PV/PVC)
  • 配置Service实现外部访问
  • ASK集群管理与应用运维
  • 资源释放

 

  1. (可选)在最右侧的工具栏中单击图标,切换至无影安全浏览器。若未直接进入登录页面,可点击左侧一键复制子账号登录链接至浏览器中。

 

  1. 在最右侧的工具栏中单击图标,切换至无影安全浏览器。

     

    1. 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码用户密码输入框,单击登录,即可完成实验用户登录并进行接下来的实验操作。

     

     

    启动MFA设备,选择手机短信验证,单击确认。​

     

    输入手机号获取验证码。​

     

    输入验证码后,单击确定。​

     

 

 添加NAS挂载点

实现ASK集群数据持久化并且使数据能够被多个Pod同时使用,声明PVC需使用NAS作为外部数据存储。NAS资源已经提前为您创建好,只需添加挂载点即可使用。

1、在控制台顶端搜索框搜索NAS,点击文件存储NAS登录NAS管理控制台;或将以下地址复制进远程桌面的浏览器地址栏:

 

https://nasnext.console.aliyun.com/overview

 

 

在左侧导航栏,选择文件系统 > 文件系统列表。在文件系统列表页面,找到预先创建好的NAS资源:Clouder_Nas,在右侧更多中,找到并点击添加挂载点。

 

NAS挂载点配置参数如下:

  • 挂载点类型:专有网络
  • VPC网络:clouder_attestation(10.0.0.0/8)
  • 交换机:K8S-02(10.0.1.0/24)
  • 权限组:VPC默认权限组(全部允许)

 

在文件系统列表页面如果看不到目标NAS资源,请注意页面左上方地域是否选择了华东1(杭州)

 

 创建ACK Serverless集群

 

复制如下链接,并在无影安全浏览器中粘贴ACK Serverless集群的控制台。

https://cs.console.aliyun.com/

 

2、在左侧导航栏,选择集群。在集群页面,单击右侧创建集群。在创建集群页面中,设置集群的配置参数。

相关参数配置如下:

  • (顶部页签)集群版本:ACK Serverless集群(请注意不要选错!)
  • 集群名称:clouder-attestation
  • 集群规格:基础版
  • 地域:华东1(杭州)
  • 版本:选择默认版本即可
  • 专有网络:使用已有 - clouder_attestation
  • 虚拟交换机:勾选 K8S-01,K8S-02
  • 配置SNAT:勾选 为专有网络配置SNAT
  • API Server访问:默认 标准型I(slb.s2.small),勾选 使用EIP暴露API Server
  • 安全组:自动创建普通安全组
  • 其余均使用默认参数

单击下一步进入 组件配置。

 

 

 

最上面选择ACK Serverless集群,集群地域需与专有网络地域一致(华东1-杭州),同时勾选两个不同可用区保障集群高可用。

 

3、组件配置

【操作动作】进入组件配置,在该页面我们可以选择需要的组件,本次实验不需要安装额外组件,并取消日志服务勾选。

 

、生成集群

【操作动作】点击右下角确认配置,确认所选配置,待依赖检查全部通过后,勾选确认服务协议,点击创建集群。

 集群创建预计3~5分钟,待集群创建完成后我们再进行数据持久化相关操作。

 

 

 通过镜像在集群中快速部署容器应用

 

创建存储卷(PV)和存储声明(PVC)

【说明】为了实现用户数据持久化存储,我们需提前定义PV和PVC。PV是对存储资源的抽象,可将存储定义为一种容器应用可以直接使用的资源,而PVC定义了应用对存储资源的申请。

1、在 容器服务ACK 控制台,左侧导航栏点击 集群 进入到集群列表页面,确认集群状态为运行中,点击 集群名称 进入集群管理控制台。

 在左侧导航栏点击 存储-存储卷,进入存储卷页面后点击右上角 创建 按钮。

 

 

依次定义存储卷如下:

  • 类型:NAS
  • 名称:wordpress-pv
  • 存储驱动:CSI
  • 总量:20Gi
  • 访问模式:ReadWriteMany
  • 选择挂载点:下拉框选择Clouder_Nas即可(之前步骤中已经创建的NAS挂载点)
  • 单击显示高级设置,在子目录后填入:/share/data
  • 版本:3

然后点击创建按钮。

【操作注意】创建PV时一定要选择NAS的子目录,wordpress镜像会chown修改目录权限、属主和属组,而NAS的根目录/不允许修改权限、属主和属组,不指定子目录的话Pod会启动报错。

 

 点击左侧导航栏 存储声明 按钮,在页面右上角点击创建按钮。

 

 

 

 

点击左上角 所有集群,返回容器服务控制台

 

二、控制台进入创建应用页面

【说明】ACK集群可以让我们在控制台上快速的通过使用镜像的方式创建应用,不用再编写复杂的YAML文件即可快速创建Pod、Service、PV及PVC等原生Kubernetes对象。

 

1、容器服务控制台,点击左侧导航栏集群进入到集群列表页面,在目标集群最右侧点击应用管理

三、配置应用基本信息

1、配置应用基本信息如下:

  • 命名空间(页面顶部):default
  • 应用名称:wordpress
  • 副本数量:5
  • 类型:无状态(Deployment)

 

2、然后点击右下角下一步按钮。

 

容器配置

1、已经提前准备好了wordpress容器应用镜像,保存在ACR镜像仓库中。点击镜像名称后的填写框,填入镜像仓库地址:

 

registry.cn-hangzhou.aliyuncs.com/wordpress_clouder/clouder-attestation-wordpress:v1

 

 

点击镜像拉取策略下拉按钮,选择优先使用本地镜像(IfNotPresent),所需资源后下拉框选择 CPU:1Core,内存:2GB

 

、在端口设置中指定容器端口如下:

  • 名称:tcp-80
  • 容器端口:80

协议:TCP

 

下拉页面到最下方数据卷部分,设置存储声明(PVC)。

注意:在选择镜像tag后,此处可能会自动增加一个临时目录类型的本地存储,因为我们需要持久化存储数据,所以此处将其删除。如果没有出现本地存储可以忽略,直接进行下一步

 

 

设置存储声明(PVC),点击增加云存储声明,填写名称和容器路径。

填写信息如下:

  • 存储卷类型:云存储
  • 名称:wordpress-pvc
  • 挂载源:wordpress-pvc
  • 容器路径:/var/www/html
  •  

配置容器访问

【说明】要使应用被外界访问,我们可以创建服务(Service)为一组具有相同功能的容器应用提供一个统一的入口地址,并且可以将请求负载分发到后端的各个容器上。

 

1、在访问设置框里点击服务(Service)后的创建按钮,设置信息如下:

 

  • 名称:wordpress-svc
  • 类型:负载均衡,公网访问,新建SLB(简约型I slb.s1.small)
  • 外部流量策略:Cluster
  • 端口映射:
    • 名称:tcp-80(注意tcp要用英文字母小写)
    • 服务端口:80
    • 容器端口:80
    • 协议:TCP

点击创建,完成服务Service创建。

 

生成容器

1、点击右下角创建按钮部署应用,等待创建显示成功后点击查看应用详情。待容器组状态都为 Running 时创建成功

 

获取应用访问地址并通过浏览器访问

1、待容器组都创建成功后,点击访问方式按钮,获取外部端点地址。  

 

 

 

 
   
 

生成容器

1、点击右下角创建按钮部署应用,等待创建显示成功后点击查看应用详情。待

 访问集群中应用并配置相关信息

 

测试访问应用

将获取到的外部端点地址和端口输入到浏览器进行访问,如应用运行正常,将看到wordpress初始化界面。

点击Let’s go进行初始化配置

 

二、获取RDS for Mysql相关信息

1、本任务中已为您提前创建好RDS数据库资源,回到控制台最上方搜索框中搜索 RDS;或将以下地址复制进远程桌面的浏览器地址栏:

https://rdsnext.console.aliyun.com/

2、进入RDS控制台,在 实例列表 找到目标实例,点击 实例ID 进入实例管理界面,点击账号管理>创建账号。

 

 

创建信息如下:

  • 数据库账号:wpadmin
  • 账号类型:普通账号
  • 新密码:Admin@123
  • 确认密码:Admin@123

点击确定,完成数据库账号创建。

 

击 数据库管理,点击 创建数据库 按钮,在弹框页面依次填入名称和字符集UTF8,选择授权账号为上一步新建的账号,点击创建按钮进行创建。

创建信息如下:

  • 数据库名称:wordpress
  • 支持字符集:utf8
  • 授权账号:下拉框选择wpadmin

点击创建。

 

 点击 数据库连接 获取数据库连接地址,这里复制 内网地址 进行使用。

 

 

配置初始化页面

1、回到wordpress配置页面,将上一步中创建的数据库名称、账号密码、连接地址一次填入wordpress初始化页面,点击提交等待初始化。

  • Database Name:wordpress
  • Username:wpadmin
  • Password:Admin@123
  • DatabaseHost:上一步中获取的数据库连接内网地址

写完成后点击Submit。

 

2、在弹出欢迎页上配置相关信息,点击Install Wordpress。

相关信息配置如下:

  • Site Title:clouder_attestation
  • Username:wpadmin
  • Password:Admin@123
  • Confirm Password:勾选
  • Your Email:123@123.com

3、配置完成后,点击Install Wordpress需等待片刻,回弹出Success页面,点击该页面Log In。

 
 

写完成后点击Submit。

 

2、在弹出欢迎页上配置相关信息,点击Install Wordpress。

相关信息配置如下:

  • Site Title:clouder_attestation
  • Username:wpadmin
  • Password:Admin@123
  • Confirm Password:勾选
  • Your Email:123@123.com

3、配置完成后,点击Install Wordpress需等待片刻,回弹出Success页面,点击该页面Log In。

 
 、配置完成后,点击Install Wordpress需等待片刻,回弹出Success页面,点击该页面Log In。  
 

集群管理功能演示

【说明】这一步主要进行演示与体验,目的是带您体验ACK Serverless集群管理相关的功能。通过集群页面我们可以管理集群相关信息,管理命名空间,创建工作负载,定义集群网络等。

 

1、在远程桌面浏览器输入以下地址可以访问ACK Serverless集群的控制台。

https://cs.console.aliyun.com/

点击 集群名称 进入集群管理页,在左侧导航栏,点击 集群信息,进入概览页签内,在该页面我们可以查看集群中所有命名空间下应用的相关状态以及集群中的所有事件。

 
 

集群管理功能演示

【说明】这一步主要进行演示与体验,目的是带您体验ACK Serverless集群管理相关的功能。通过集群页面我们可以管理集群相关信息,管理命名空间,创建工作负载,定义集群网络等。

 

1、在远程桌面浏览器输入以下地址可以访问ACK Serverless集群的控制台。

https://cs.console.aliyun.com/

点击 集群名称 进入集群管理页,在左侧导航栏,点击 集群信息,进入概览页签内,在该页面我们可以查看集群中所有命名空间下应用的相关状态以及集群中的所有事件。

 

、控制台管理应用

【说明】容器服务提供Web控制台对部署应用及应用所涉及的K8s资源进行统一查看和管理,实现免运维应用托管,降低K8s使用和维护的门槛。本步骤通过手动删除Pod,模拟应用异常下线,来体验ACK Serverless完善的核心功能。

 

1、在集群信息页面,点击左侧导航栏 工作负载 > 无状态,找到部署的应用,点击右侧详情按钮,查看容器组,点击其中一个Pod最右侧的删除按钮,在弹出页面点击确认。

 
 、点击右上方刷新按钮,我们可以看到一个Pod被删除(Terminating)的同时,瞬间又起了一个Pod(Pending / ContainerCreating)。

 此时通过该页面访问方式页签获取访问地址访问应用,会发现wordpress应用还是持续可用的。

 

 

 

此时通过该页面访问方式页签获取访问地址访问应用,会发现wordpress应用还是持续可用的。

 等待几秒后,我们刷新页面就能看到容器组中又有5个正常 Running 状态的Pod。

 

 

 

 

 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
posted @   aiplus  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
历史上的今天:
2014-02-12 滚动播放文字或者图片信息效果
2014-02-12 电话号码
悬浮按钮示例
点击右上角即可分享
微信分享提示