Bootstrap

华为云云原生王者之路集训营(黄金-第六章):Kubernetes持久化数据卷管理

课程目标:

了解StatefulSet的概念及使用

了解PersistentVolume概念及使用

了解PersistentVolumeClaim的概念及使用

了解StorageClass的概念及使用

1.1 无状态应用:

应用是为了某项特殊的任务而编写的程序。程序是由算法和数据组成的。

在生产环境中,除了一些无状态应用外,还有一部分应用需要将结果数据(也即:状态)缓存下来,并永久的记录在存储中,以供后续使用。

这类应用就是我们将要讨论的“有状态应用”,与“无状态应用”相比,我们期望“有状态应用”具有哪些能力呢?

1.计算维度: 每个pod的名字需要是稳定的,不会发生变化的;pods之间的启动、升级、退出可以按照某种顺序控制的;

2.存储维度:存储是持久的,拥有独立于pod的生命周期,不会随着pod的生命周期结束而销毁;每个pod与其使用的存储关系是稳定的,不会因升级等因素而发生变化;

3.网络维度:每个pod的有独立、稳定的网络标识;

1.2 有状态应用(StatefulSet)概念介绍

基于社区对有状态应用的通用需求,K8S设计了一种有状态应用对象,也即: StatefulSet。它可以为用户提供一组具有稳定、有序、唯一特性的应用实例集合。如右图所示:

1.稳定:稳定的podName: {stsName}-{序号[O-n]}

②稳定的网络标识: {podName}. {headless-svcName}.{namespace}.svc.cluster.local</

;