冬季实战末期场景体验报告

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: k8s 控制器 deploy RS STS

通过第五期对于阿里云大数据应用的体验,集群作为基础资源,如何有效管理集群,以及集群如何通过k8s去管理,应用如何实现自动扩缩容,本文将重点进行集群控制器的介绍。
本文主要介绍两种常用的控制器:无状态服务Deployment和有状态应用管理StatefulSet
一、无状态服务Deployment
用于部署无状态的服务,这个最常用的控制器。一般用于管理维护企业内部无状态的微服务,比如configserver、zuul、springboot。他可以管理多个副本的Pod实现无缝迁移、自动扩容缩容、自动灾难恢复、一键回滚等功能。
二、Deployment的更新
修改spec里面的template才会触发更新。滚动更新的策略是:先启动一个新的rs,将副本数设置为1,再把旧的删掉一个,然后再启动一个新的。
三、有状态应用管理StatefulSet
StatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部署是比较适合用StatefulSet部署方式的,可以给每个Eureka实例创建一个唯一且固定的标识符,并且每个Eureka实例无需配置多余的Service,其余Spring Boot应用可以直接通过Eureka的Headless Service即可进行注册。
StatefulSet主要用于管理有状态应用程序的工作负载API对象。比如在生产环境中,可以部署ElasticSearch集群、MongoDB集群或者需要持久化的RabbitMQ集群、Redis集群、Kafka集群和ZooKeeper集群等。
和Deployment类似,一个StatefulSet也同样管理着基于相同容器规范的Pod。不同的是,StatefulSet为每个Pod维护了一个粘性标识。这些Pod是根据相同的规范创建的,但是不可互换,每个Pod都有一个持久的标识符,在重新调度时也会保留,一般格式为StatefulSetName-Number。比如定义一个名字是Redis-Sentinel的StatefulSet,指定创建三个Pod,那么创建出来的Pod名字就为Redis-Sentinel-0、Redis-Sentinel-1、Redis-Sentinel-2。而StatefulSet创建的Pod一般使用Headless Service(无头服务)进行通信,和普通的Service的区别在于Headless Service没有ClusterIP,它使用的是Endpoint进行互相通信。
四、StatefulSet注意事项
一般StatefulSet用于有以下一个或者多个需求的应用程序:
1、需要稳定的独一无二的网络标识符。
2、需要持久化数据。
3、需要有序的、优雅的部署和扩展。
4、需要有序的自动滚动更新。
如果应用程序不需要任何稳定的标识符或者有序的部署、删除或者扩展,应该使用无状态的控制器部署应用程序,比如Deployment或者ReplicaSet。
StatefulSet是Kubernetes 1.9版本之前的beta资源,在1.5版本之前的任何Kubernetes版本都没有。
Pod所用的存储必须由PersistentVolume Provisioner(持久化卷配置器)根据请求配置StorageClass,或者由管理员预先配置,当然也可以不配置存储。
为了确保数据安全,删除和缩放StatefulSet不会删除与StatefulSet关联的卷,可以手动选择性地删除PVC和PV
StatefulSet目前使用Headless Service(无头服务)负责Pod的网络身份和通信,需要提前创建此服务。
删除一个StatefulSet时,不保证对Pod的终止,要在StatefulSet中实现Pod的有序和正常终止,可以在删除之前将StatefulSet的副本缩减为0。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
弹性计算 关系型数据库 MySQL
冬季实战营第一期场景体验报告
冬季实战营,帮助开发者学习使用云上资源,高效开发。实战营让开发者动手实战,由专家带练。由浅及深,逐渐提升开发者的动手实操能力!
249 1
冬季实战营第一期场景体验报告
|
弹性计算 关系型数据库 MySQL
场景体验报告——冬季实战营第一期
冬季实战营第一期,通过六个场景,从ECS的登录开始,涵盖了安装并配置Apache、MySQL、PHP环境,Docker的部署、SpringBoot项目的部署,最后还搭建了一个门户网站。
330 1
场景体验报告——冬季实战营第一期
|
关系型数据库 MySQL RDS
|
SQL 弹性计算 分布式计算
场景体验报告——冬季实战营第五期
第五期为大数据的实战,主要介绍了阿里云EMR集群、Elasticsearch集群和湖仓一体架构。对大数据的学习有一定的入门作用。
137 0
场景体验报告——冬季实战营第五期
|
SQL 弹性计算 Oracle
冬季实战营第三期场景体验报告
场景一:MySQL数据库快速部署实践 本实验提供一个Linux系统。首先,安装mysql;然后,执行mysql的常用操作;最后,学习基本的SQL语句。 场景二:数据库上云实战 开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。 场景三:MySQL数据库基础 本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
185 1
|
SQL 弹性计算 关系型数据库
三期场景体验报告
动手实战、专家带练。由浅及深,逐渐提升开发者的动手实操能力
218 0
三期场景体验报告
|
存储 关系型数据库 MySQL
场景体验报告——冬季实战营第三期
第三期的冬季实战营主题是MySQL数据库,MySQL数据库是非常常用的数据库,由于我已经有一定的基础,因此我主要记录了独具特色的阿里云RDS的使用。
140 0
场景体验报告——冬季实战营第三期
|
Linux 开发工具 数据安全/隐私保护
冬季实战营第二期场景体验报告
冬季实战营,帮助开发者学习使用云上资源,高效开发。实战营让开发者动手实战,由专家带练。由浅及深,逐渐提升开发者的动手实操能力!第二期主要带领开发者从0到1学习Linux指令,以及如何在云上使用Linux。
187 0
冬季实战营第二期场景体验报告
|
存储 网络协议 安全
场景体验报告——冬季实战营第二期
第二期的实战内容是Linux操作系统的基础命令,从文本处理、系统管理、磁盘管理、文件与权限、文件管理五个方面进行Linux命令操作的基础学习,具有很强的实战意义。命令很多,仅仅依靠体验场景进行练习是远远不够的,要将这些命令融入到日常开发当中。
174 0
场景体验报告——冬季实战营第二期
|
存储 Kubernetes 固态存储
冬季实战第四期场景体验报告
volume,持久化存储
176 0