部署应用及配置网站信息

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 在ACK Serverless集群中,我们部署了一个网站应用,准备了NAS存储和数据库资源。容器组(Pod)是Kubernetes调度的基本单元,类似操作系统的进程组,Pod内包含一组紧密相关的容器。在ACK中,通过创建存储卷和存储声明来使用NAS,然后在无状态工作负载中配置应用,包括镜像、资源需求和PVC。此外,我们创建了负载均衡服务以暴露应用,并通过外部负载均衡器将流量引向Service。在无需手动创建工作节点的情况下,ACK Serverless自动处理资源,简化了集群管理和运维。最后,我们配置了网站应用信息,如数据库连接和网站设置,完成应用部署。

在这一步中,我们主要基于ACK Serverless集群进行网站应用的部署,同时准备好网站应用所需的NAS存储资源和数据库资源等。

 

容器组与Pod

小陈:好了,现在已经创建完ACK Serverless集群,接下来就可以开始部署网站应用了吧?

大刘:是的,不过在此之前,先巩固一下理论知识。考考你,我们的网站应用运行在容器里,那怎么来调度容器资源呢?

小陈:之前学Kubernetes的时候有一个Pod的概念,Pod里面包含一组容器,它是Kubernetes调度资源的原子单位。可是……Pod在哪儿呢,好像没看到?

大刘:没错,你看ACK Serverless界面的左侧,有一个标签叫容器组,它就对应Kubernetes中的Pod。

小陈:哦,原来是这样,多谢师傅提醒。

在操作系统中,进程并不是"孤苦伶仃"的运行,而是以进程组的方式、"有原则的"组织在一起运行,一个进程组内的进程可以共享文件和资源。Kubernetes借鉴了操作系统中"进程组" 的概念,并抽象出一个逻辑概念Pod。Pod是一组紧密关联的容器集合,也可以称为容器组Pod是Kubernetes中操作和资源调度的基本单元。为了便于理解,我们可以做个类比,Kubernetes就是一个操作系统,就像Linux;Pod就是一个进程组,就像Linux线程组;容器就是一个进程,就像Linux线程

容器组Pod的组成

在ACK Serverless中部署应用

  1. 创建存储卷,指向之前创建的NAS,同时创建对应的存储声明,提供给容器组(Pod)使用。

ACK Serverless中的存储卷就就对应前面学习过的Kubernetes中的PV(Persistent Volume), PV是一种持久化的存储,独立于集群而存在,与Pod容器组的生命周期无关。

PV不能与Pod直接关联,而是用来和存储对接的,用于绑定后端存储,比如NAS文件系统就是一种常见的后端存储类型,写入PV的数据最终都是存放在后端存储上。Kubernetes通过PVC即存储声明的方式来管理和使用PV存储卷。PVC可以直接被Pod挂载,同时可以绑定PV,从而让Pod使用PV;PVC与挂载它的Pod隶属于同一个命名空间Namespace。下图表示了Pod与PVC、PV的关系。

  1. 在ACK Serverless控制台工作负载无状态标签下,使用镜像创建无状态应用。


【延伸阅读】工作负载 Workload

这里的工作负载就对应前面Kubernetes中工作负载 Workload的概念。工作负载通常有如下几种类型:

  • 无状态(Deployment):表示对Kubernetes集群的一次更新操作,用于运行完全独立、功能相同应用的场景。
  • 有状态(StatefulSet):支持应用部署、扩容、滚动升级时有序进行。如使用有状态来管理使用了持久存储的应用。
  • 任务(Job):它创建出来的Pod只要完成任务就立即退出,用于执行一次性任务。可以使用Job以并行的方式运行多个 Pod。
  • 定时任务(CronJob):它创建的Pod会周期性的执行,用于执行周期性任务。
  • 自定义资源(Custom Resource Definitions,CRD):可以通过CRD添加第三方工作负载资源。

本次任务中采用无状态的工作负载类型来承载网站应用。

a)设置应用基本信息:设置应用名称、副本数量、类型为无状态等。

本次采用无状态工作负载部署应用,选择default的命名空间Namespace。通常,我们会构建开发、测试、准生产、生产等多套应用环境,每套环境中都会创建一个ACK Serverless集群,几套环境中的无状态工作负载、容器组、服务名字都相同,而ACK Serverless集群中要求这些资源名称要唯一。这就需要这些环境创建时,通过命名空间进行资源的有效隔离。

这里的“副本数量”其实就对应Kubernetes里ReplicaSet的副本数,是因为无状态工作负载(Deployment)是通过控制ReplicaSet,来实现对Pod数量的控制。

b)容器配置:设置镜像名称、镜像Tag、所需资源的CPU和内存、新增端口并指定容器端口、数据卷增加云存储声明并指定容器路径;

这里选择的镜像名称,就是我们已经提前准备好的,存放于ACR镜像服务中的WordPress公司网站应用的镜像。

下图增加PVC,这里PVC也是前面准备好的,通过PV绑定了文件存储的挂载点。

c)高级配置:创建服务,类型为负载均衡,外部流量策略为Cluster,设置服务端口并映射到容器端口。这里的服务就对应前面提到过的Kubernetes中的Service。


【延伸阅读】容器集群的访问

Service解决了服务发现和负载均衡的问题,但外部用户直接访问Service并不是最佳的方案,原因如下:

  • Service提供的是IP+端口的访问服务,需要访问对应的NodeIP:Port,对于已经习惯了使用域名的用户不是特别友好。
  • 由于NodePort的访问方式,需要指定Node节点的端口,一旦服务多起来,多个端口难以管理。
  • Service本身也可能被销毁重建,从而使得Service的地址也会发生变化。

为了解决上述问题,这里通过搭建外部负载均衡,并将流量转发到Service上来解决。Service与负载均衡搭配后的访问流程如下:


  1. 完成应用的创建,ACK Serverless将先后完成无状态工作负载和服务的创建。

容器集群的工作(计算)节点

大刘:再问你一个问题,之前学习过,Kubernetes由管理节点和工作节点构成。但你注意到了吗,在刚刚创建ACK Serverless集群以及部署应用的过程中,并没有直接创建工作节点

小陈:是的呢,我也发现了,这是为什么?

大刘:这是因为我们选择了ACK Serverless服务,ACK Serverless是容器服务的Serverless版本,Serverless的优点就是无需购买节点、无需对集群进行节点维护和容量规划,可以直接使用。ACK Serverless会按需、自动的创建好工作节点资源,所以我们不需要手动创建工作节点。

小陈:原来如此,确实方便了很多呀。

我们先来回忆一下工作节点的知识,工作节点是Kubernetes的工作负载节点,主要包含三个组件:kubelet、kube-proxy、Container Runtime。

  • kubelet:负责管理节点上容器的创建、删除、启停等任务,与管理节点通信。
  • kube-proxy:负责Kubernetes服务的通信及负载均衡服务。
  • Container Runtime:负责容器的基础管理服务,接收kubelet组件的指令。

ACK Serverless是容器服务Serverless版,无需购买节点即可直接部署容器应用,无需对集群进行节点维护和容量规划。ACK Serverless通过虚拟节点直接管理ECI,每个ECI对应一个Pod,而不是像自建Kubernetes那样需要采用ECS作为工作节点。ACK Serverless与自建Kubernetes工作节点的架构比较如下:

 

配置网站应用信息

  1. 获取应用访问地址,通过浏览器访问。

  1. 访问应用完成配置:创建数据库账号,给数据库账号赋权,初始化WordPress页面配置,并访问网站管理等。

创建数据库账号,并赋权数据库账号;获取数据库的账号信息,配置到应用配置中;最后,完成网站应用的安装与配置。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6月前
|
移动开发 运维 小程序
【4月开发者日回顾】小程序审核驳回增加页面截图;H5域名白名单的配置将实时生效……
【4月开发者日回顾】小程序审核驳回增加页面截图;H5域名白名单的配置将实时生效……
109 11
|
安全 搜索推荐 数据库
什么是网站托管服务?网站托管服务的内容都包含哪些
网站托管服务是目前很多中小企业选择的外包服务之一,当然也依然有很多人对什么是网站托管服务并不了解,接下来小编为大家分享网站托管服务是指什么、都有哪些类型、什么企业适用以及具体有哪些服务内容,一起来看看吧。
648 0
什么是网站托管服务?网站托管服务的内容都包含哪些
|
22天前
|
域名解析 缓存 监控
网站配置
【10月更文挑战第24天】网站配置
33 2
|
3月前
|
SQL 开发框架 网络协议
【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)
【Azure 环境】基于Azure搭建企业级内部站点, 配置私有域名访问的详细教程 (含演示动画)
|
4月前
|
监控 Serverless 数据处理
函数计算产品使用问题之如何解决配置模型管理的自定义域名后无法访问
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
Linux 网络安全 数据库
收集站点信息:第三方网站查询(附链接)
收集站点信息:第三方网站查询(附链接)
|
6月前
|
存储 XML 前端开发
信息收集 -- WordPress网站
信息收集 -- WordPress网站
94 0
|
网络协议
阿里云注册域名没有查询到可用的信息模板解决方法
阿里云注册域名之前需要先创建信息模版,并且完成域名持有者身份信息核验,才可以注册域名,阿里云域名注册将采用先完成域名持有者身份信息核验、再注册域名的方式。注册域名时需要选择域名持有者,域名持有者可以是个人或企业,如果你的阿里云账号下没有已实名认证的信息模版,那么注册域名时会提示“亲,没有查询到可用的信息模板”
576 1
阿里云注册域名没有查询到可用的信息模板解决方法
CDN
|
缓存 网络协议 前端开发
全面加速Wordpress站点:从文章页到管理后台
使用阿里云服务和几个插件,提高wordpress站点每个环节的访问速度。
CDN
959 0
全面加速Wordpress站点:从文章页到管理后台
|
存储 负载均衡 前端开发
网站服务应当用什么样的配置?
网站服务应当用什么样的配置?
1131 0