阿里云云原生容器工程师ACP认证(六)—容器服务ACK使用镜像创建应用

 

创建无状态应用

使用镜像创建一个可公网访问的应用

  • 登录容器服务管理控制台
  • 在控制台左侧导航栏单击集群
  • 选择工作负载——无状态
  • 右上角点击使用镜像创建

在这里插入图片描述

在这里插入图片描述

选择镜像

在这里插入图片描述

  • 默认在阿里的镜像市场选择镜像,可以做资源的限制
  • 容器启动项分为stdin和tty,默认选择tty
  • 特权容器选择开启或不开启

高级配置

在这里插入图片描述

  • 选择暴露Pod的方式ClusterIP或者Ingress
  • 伸缩配置区域可以选择开启定时伸缩或指标伸缩
  • 调度配置可以设置调度策略和方法,全自动调度和定向调度,亲和性与非亲和性,污点与容忍
  • 标签注释

(创建Ingress前提是必须开启Ingress服务)

在这里插入图片描述

创建有状态应用

  • 无状态服务:就是没有特殊状态的服务,各个请求对于服务器来说统一无差别处理,请求自身携带了所有服务端所需要的所有参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息)

  • 有状态服务:容器数据持久化保持,有状态服务可以说是需要数据存储功能的服务、或者指多线程类型的服务,队列等。(mysql数据库、kafka、zookeeper等)

在这里插入图片描述

  • Deployment创建的Pod是无状态的,当挂在Volume之后,如果该Pod挂了,Replication Controller会再启动Pod一个来保证可用性,但是由于是无状态的,Pod挂了的时候与之前的 Volume的关系就已经断开了,新起来的Pod无法找到之前的Pod。但是对于用户而言,他们对底层 的Pod挂了没有感知,但是当Pod挂了之后就无法再使用之前挂载的磁盘了。

  • 而对于有状态的应用部署则需要通过StatefulSet创建部署。

StatefulSet 应用集特点

  • 稳定且需要唯一的网络标识符
  • 稳定且持久的存储
  • 有状态应用集的特点
  • 要求有序,平滑的部署和扩展;公
  • 要求有序,平滑的终止和删除;
  • 有序的滚动更新。

StatefulSet 可能会创建三种类型的资源:

  • Controller Revision,通过这个资源,,StatefulSet 可以很方便地管理不同版本的 template 模板.
  • PVC,StatefulSet 会在创建 Pod之前,先根据这个模板创建PVC,并把PVC加到Pod volume中
  • Pod, StatefulSet 按照顺序创建、删除、更新 Pod,每个Pod有唯一的序号。

创建步骤

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

设置容器相关的配置:数据卷

  • 支持增加本地存储和云存储声明(PVC)

在这里插入图片描述

高级配置

在这里插入图片描述

创建成功

在这里插入图片描述

验证服务的伸缩性

选择所需的Nginx应用,单击右侧伸缩

  • 在弹出的对话框中,在容器组中设置为3,可以发现扩容的时候,扩容容器组的排序依次增加;反之进行缩容量时,先按pod次序从高到低进行缩容。这体现了StatefulSet中Pod的次序稳定性
  • 单击左侧导航栏中的存储卷>存储声明,您可发现,随着应用扩容,会随着Pod创建新的云存储卷。缩容后,已创建的PV/PVC不会删除。