有状态

优质
小牛编辑
134浏览
2023-12-01
帮助用户快速部署有状态的应用。

有状态应用即Statefulset。Statefulset的详细介绍内容,请参考kubernets官方文档-Statefulsets

Pod是Kubernetes的最小编排单位,有状态statefulset主要用于部署实例之间有不对等关系,以及实例对外部数据有依赖关系的有状态应用。基于statefulset部署的应用有以下特点:

  • 基于statefulset部署的pod是有顺序的,pod的迁移或销毁重建后,仍保持顺序;
  • 如需要持久化存储,可以基于PVC实现持久化存储;
  • 基于headless service实现稳定网络标志;

入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “容器/应用/有状态” 菜单项,进入有状态页面。

查看有状态应用

该功能用于基于集群、命名空间筛选有状态应用信息。

  1. 在有状态页面,默认查看一个集群下所有命名空间的有状态应用信息。

  2. 当环境中存在多个集群时,单击列表上方集群右侧输入框,选择其他集群,查看其他集群下的所有命名空间的有状态应用信息。

  3. 当集群下存在多个命名空间时,单击列表上方命名空间右侧输入框,选择命名空间,查看指定命名空间下的有状态应用信息。

新建有状态应用

该功能用于通过镜像创建有状态应用Statefulset。

  1. 在有状态页面,单击列表上方 “新建” 按钮,进入新建有状态应用页面。

  2. 设置以下参数:

    • 名称:Statefulset的名称。
    • 集群:选择有状态应用所属集群。
    • 命名空间:选择有状态应用所属命名空间。命名空间用于逻辑划分集群,deployment、pod、service等都属于某一命名空间。在云管平台中命名空间对应项目。Kubernetes集群创建完成后默认将生成default、kube-system、kube-public等命名空间。
    • 容器组个数:设置容器组Pod的个数,对应yaml文件中spec.replicas值。
    • 镜像密钥:访问私有仓库时需要设置密钥,支持新建和选择已有密钥。
    • 服务:设置有状态应用以及容器组的访问方式,包括集群内部访问和集群外部访问。
      • 内部:将自动生成一个ClusterIP供集群内部和容器组之间访问。
        • 目标端口:目标端口是pod上的端口。
        • 服务端口:用户访问端口。
        • 协议:选择应用使用的协议,包括TCP和UDP。
      • 外部:将配合负载均衡功能使用,供集群外部访问。使用外部服务之前需要先在负载均衡中创建负载均衡集群以及节点,创建外部服务时将同步在负载均衡中创建一个负载均衡实例。
        • 负载均衡网络:选择IP子网,系统将自动从IP子网中分配一个IP地址作为访问IP。
        • 目标端口:目标端口是pod上的端口。
        • 服务端口:外部用户访问端口。
        • 协议:选择应用使用的协议,包括TCP和UDP。
    • 重启策略:仅支持always,即容器退出时总是重启容器。
    • 高级配置:根据需求配置标签和备注。
      • 标签:自定义设置有状态应用的标签。
      • 备注:自定义设置有状态应用的备注信息。
    • 容器:可根据需求为deployment中的一个pod设置一个或多个不同的容器。
      • 名称:自定义容器名称。

      • 容器镜像:若仅输入镜像名称,则默认使用dockerhub上的镜像,如需要使用私有仓库镜像,需要设置仓库/镜像。本例直接输入nginx。

      • CPU/内存:设置容器占用的CPU、内存大小。

      • 容器命令、命令参数:设置容器命令和参数。其中容器命名对应spec.containers.command,参数对应spec.containers.args。如yaml文件中command: [“perl”, “-Mbignum=bpi”, “-wle”, “print bpi(2000)"],需要在表单容器命令中输入以下信息。

        $ perl -Mbignum=bpi -wle print bpi(2000)
        
      • 数据卷:通过键值对的形式为Pod中容器设置存储声明和挂载点,需要提前在集群下的命名空间中创建存储卷声明。

      • 环境变量:通过键值对的形式为Pod配置环境变量。用于给Pod添加环境标志或传递配置等。

      • 特权模式:特权模式的容器内部进程与容器外部进程的权限相同。

  3. 单击 “部署” 按钮,部署nginx应用。

设置镜像

该功能用于修改有状态应用的容器镜像。

  1. 在有状态页面,单击有状态应用右侧操作列 “设置镜像” 按钮,弹出设置镜像对话框。
  2. 设置镜像,单击 “确定” 按钮,修改应用的容器镜像。

设置副本数

该功能用于修改有状态应用的容器副本数。

  1. 在有状态页面,单击有状态应用右侧操作列 “设置副本数” 按钮,弹出设置副本数对话框。
  2. 设置副本数,单击 “确定” 按钮,设置容器组副本数。

查看/编辑

该功能用于查看或者编辑有状态应用的yaml文件。

  1. 在有状态页面,单击有状态应用右侧操作列 “更多” 按钮,选择下拉菜单 “查看/编辑” 菜单项,弹出查看/更新对话框。
  2. 支持查看和编辑有状态应用的yaml文件信息。
  3. 编辑yaml文件后,单击 “确定” 按钮,即可生效。

删除有状态应用

该功能用于删除有状态应用,以及通过有状态应用创建的容器组(pod)。

单个删除

  1. 在有状态页面,单击有状态应用右侧操作列 “更多” 按钮,选择下拉菜单 “删除” 菜单项,弹出的操作确认对话框。
  2. 单击 “确定” 按钮,删除有状态应用以及相关资源。

批量删除

  1. 在有状态列表中选择一个或多个有状态应用,单击列表上方 “删除” 按钮,弹出的操作确认对话框。
  2. 单击 “确定” 按钮,删除有状态应用以及相关资源。

查看有状态应用详情

该功能用于查看有状态应用详细信息。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 查看以下信息:包括云上ID、ID、名称、状态、集群、命名空间、容器组、镜像、初始化镜像、标签、创建时间等。

查看容器组

该功能用于查看有状态应用创建的容器组,并支持管理容器组。

查看/编辑

该功能用于查看容器组的yaml文件。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“容器组”页签,进入容器组页面。
  3. 单击容器组右侧操作列 “查看/编辑” 按钮,弹出查看/更新对话框。
  4. 支持查看和编辑有状态应用的yaml文件信息。
  5. 编辑yaml文件后,单击 “确定” 按钮,即可生效。

删除

该功能用于删除容器组。容器组删除后将会根据yaml文件设置重新部署新的容器组。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“容器组”页签,进入容器组页面。
  3. 单击容器组右侧操作列 “删除” 按钮,弹出操作确认对话框。
  4. 单击 “确定” 按钮,完成操作。

查看服务

该功能用于查看有状态应用创建的服务,只有当创建时设置了内部或外部服务,才能查看对应服务。

查看/编辑

该功能用于查看服务的yaml文件。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“服务”页签,进入服务页面。
  3. 单击服务右侧操作列 “查看/编辑” 按钮,弹出查看/更新对话框。
  4. 支持查看和编辑有状态应用的yaml文件信息。
  5. 编辑yaml文件后,单击 “确定” 按钮,即可生效。

删除

该功能用于删除服务。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“服务”页签,进入服务页面。
  3. 单击服务右侧操作列 “删除” 按钮,弹出操作确认对话框。
  4. 单击 “确定” 按钮,完成操作。

查看事件

该功能用于记录资源对象事件发生的记录,包括内容、来源、原因、创建时间,用于排除故障。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“事件”页签,进入事件页面。
  3. 查看事件的内容、来源、原因以及创建时间等。

查看源信息

该功能用于查看并编辑有状态应用的yaml信息。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“源信息”页签,进入源信息页面。
  3. 单击 “复制内容” 按钮,复制节点的yaml文件信息。
  4. 更新yaml文件后,单击 “更新” 按钮。

查看操作日志

该功能用于查看有状态应用相关的操作日志。

  1. 在有状态页面,单击有状态应用名称项,进入有状态应用详情页面。
  2. 单击“操作日志”页签,进入操作日志页面。
    • 加载更多日志:在操作日志页面,列表默认显示20条操作日志信息,如需查看更多操作日志,请单击 “加载更多” 按钮,获取更多日志信息。
    • 查看日志详情:单击操作日志右侧操作列 “查看” 按钮,查看日志的详情信息。支持复制详情内容。
    • 查看指定时间段的日志:如需查看某个时间段的操作日志,在列表右上方的开始日期和结束日期中设置具体的日期,查询指定时间段的日志信息。
    • 导出日志:目前仅支持导出本页显示的日志。单击右上角图标,在弹出的导出数据对话框中,设置导出数据列,单击 “确定” 按钮,导出日志。