website/content/zh/docs/project-user-guide/application-workloads/statefulsets.md
adakisme a8091ce42f Remove extra spaces
Signed-off-by: adakisme <serenashe@yunify.com>
2021-04-14 15:46:52 +08:00

10 KiB
Raw Blame History

title keywords description linkTitle weight
有状态副本集 KubeSphere, Kubernetes, 有状态副本集, 仪表板, 服务 了解有状态副本集的基本概念以及如何在 KubeSphere 中创建有状态副本集。 有状态副本集 10220

有状态副本集是用于管理有状态应用的工作负载 API 对象,负责一组 Pod 的部署和扩缩,并保证这些 Pod 的顺序性和唯一性。

与部署类似,有状态副本集管理基于相同容器规范的 Pod。与部署不同的是有状态副本集为其每个 Pod 维护一个粘性身份。这些 Pod 根据相同的规范而创建,但不能相互替换:每个 Pod 都有一个持久的标识符,无论 Pod 如何调度,该标识符均保持不变。

如果您想使用存储卷为工作负载提供持久化存储,可以使用有状态副本集作为解决方案的一部分。尽管有状态副本集中的单个 Pod 容易出现故障,但持久的 Pod 标识符可以更容易地将现有存储卷匹配到替换任意故障 Pod 的新 Pod。

对于需要满足以下一个或多个需求的应用程序来说,有状态副本集非常有用。

  • 稳定的、唯一的网络标识符。
  • 稳定的、持久的存储。
  • 有序的、优雅的部署和扩缩。
  • 有序的、自动的滚动更新。

有关更多信息,请参见 Kubernetes 官方文档

准备工作

您需要创建一个企业空间、一个项目以及一个帐户 (project-regular),务必邀请该帐户到项目中并赋予 operator 角色。有关更多信息,请参见创建企业空间、项目、帐户和角色

创建有状态副本集

在 KubeSphere 中,创建有状态副本集时也会创建 Headless 服务。您可以在项目的应用负载下的服务中找到 Headless 服务。

步骤 1打开仪表板

project-regular 身份登录控制台。转到项目的应用负载,选择工作负载,然后在有状态副本集选项卡下点击创建

有状态副本集

步骤 2输入基本信息

为有状态副本集指定一个名称(例如 demo-stateful),然后点击下一步继续。

输入名称

步骤 3设置镜像

  1. 设置镜像前,请点击容器组副本数量中的加号减号图标来定义 Pod即容器组的副本数量该参数显示在清单文件中的 .spec.replicas 字段。

    {{< notice tip >}}

您可以启用右上角的编辑模式,查看 YAML 格式的有状态副本集清单文件。KubeSphere 使您可以直接编辑清单文件创建有状态副本集,或者您可以按照下列步骤使用仪表板创建有状态副本集。

{{</ notice >}}

![设置镜像](/images/docs/zh-cn/project-user-guide/application-workloads/statefulsets/statefulsets_form_2.png)
  1. 点击添加容器镜像

    添加容器镜像

  2. 输入镜像名称,该镜像可以来自公共 Docker Hub也可以来自您指定的私有仓库。例如,在搜索栏输入 nginx 然后按回车键

    输入镜像名称

    {{< notice note >}}

  • 在搜索栏输入镜像名称后,请记得按键盘上的回车键

  • 如果想使用您的私有镜像仓库,您应该先通过配置中心下面的密钥创建镜像仓库密钥

    {{</ notice >}}

  1. 根据您的需求设置 CPU 和内存的资源请求和限制。有关更多信息,请参见容器镜像设置中关于资源请求和资源限制的内容

    资源请求

  2. 点击使用默认端口以自动填充服务设置,或者您可以自定义协议名称容器端口

  3. 从下拉菜单中选择镜像拉取策略。有关更多信息,请参见容器镜像设置中关于镜像拉取策略的内容

  4. 对于其他设置(健康检查器启动命令环境变量容器 Security Context 以及同步主机时区),您也可以在仪表板上配置它们。有关更多信息,请参见容器镜像设置中对这些属性的详细说明。操作完成后,点击右下角的 继续。

  5. 在下拉菜单中选择更新策略。建议您选择滚动更新。有关更多信息,请参见更新策略

  6. 选择部署模式。有关更多信息,请参见部署模式

  7. 完成容器镜像设置后,点击下一步继续。

步骤 4挂载存储卷

有状态副本集可以使用存储卷模板,但是您必须提前在存储管理中创建它。有关存储卷的更多信息,请访问存储卷。完成后,点击下一步继续。

挂载存储卷

步骤 5配置高级设置

您可以在此部分中设置节点调度策略并添加元数据。完成操作后,点击创建完成创建有状态副本集的整个流程。

高级设置

  • 设置节点调度策略

    您可以让 Pod 副本在指定节点上运行。该参数在 nodeSelector 字段中指定。

  • 添加元数据

    为资源进行额外的元数据设置,例如标签注解

查看有状态副本集详情

详情页面

  1. 有状态副本集创建后会显示在下方的列表中。您可以点击右边的三个点,在弹出菜单中选择操作,修改您的有状态副本集。

    列表

    • 编辑:查看并编辑基本信息。
    • 编辑配置文件:查看、上传、下载或者更新 YAML 文件。
    • 重新部署:重新部署该有状态副本集。
    • 删除:删除该有状态副本集。
  2. 点击有状态副本集名称可以进入它的详情页面。

    详情页面

  3. 点击更多操作,显示您可以对该有状态副本集进行的操作。

    更多操作

    • 版本回退:选择要回退的版本。
    • 编辑服务:设置端口来暴露容器镜像和服务端口。
    • 编辑配置模板:配置更新策略、容器和存储卷。
    • 编辑配置文件:查看、上传、下载或者更新 YAML 文件。
    • 重新部署:重新部署该有状态副本集。
    • 删除:删除该有状态副本集并返回有状态副本集列表页面。
  4. 点击资源状态选项卡,查看该有状态副本集的端口和 Pod 信息。

    资源状态

    • 副本运行状态:点击图像中的箭头增加或减少 Pod 副本数量。

    • Pod 详情

      Pod 列表

      • Pod 列表中显示了 Pod 详情运行状态、节点、Pod IP 以及资源使用情况)。
      • 您可以点击 Pod 条目查看容器信息。
      • 点击容器日志图标查看容器的输出日志。
      • 您可以点击 Pod 名称查看 Pod 详情页面。

版本记录

修改工作负载的资源模板后,会生成一个新的日志并重新调度 Pod 进行版本更新。默认保存 10 个最近的版本。您可以根据修改日志进行重新部署。

元数据

点击元数据选项卡以查看有状态副本集的标签和注解。

statefulsets

监控

  1. 点击监控选项卡以查看有状态副本集的 CPU 使用量、内存使用量、网络流出速率和网络流入速率。

    statefulsets

  2. 点击右上角的下拉菜单以自定义时间范围和时间间隔。

    statefulsets

  3. 点击右上角的 statefulsets_autorefresh_start/ 以开始或停止自动刷新数据。

  4. 点击右上角的 以手动刷新数据。

环境变量

点击环境变量选项卡查看有状态副本集的环境变量。

statefulsets

事件

点击事件查看有状态副本集的事件。

statefulsets