Helm基础知识
Helm 的概述和功能
- Helm 是一个 Kubernetes 应用程序包管理器,它提供了一种简单、可重复、可扩展的方式来安装、升级和管理 Kubernetes 应用程序
Helm是k8s包管理工具,用来简化应用的部署和管理。我们知道在k8s中各种资源是用yaml来描述,而helm可以把yaml模板化,让运营人员根据需要配置并实例化应用。
假设一应用有dev、test、qa、live环境,每个环境实例数,配置文件,namespace等等都不同,如没有helm,则需要4套yaml资源包,带来极大维护成本。而通过helm则可把可变部分参数化,集中放入value.yaml文件
- Helm 的术语和组件(例如,Chart、Release、Repository 等)
- Chart Chart 是 Helm 中的核心概念之一,它表示一个预先定义好的 Kubernetes 应用程序的包。Chart 包含应用程序的定义、依赖项、默认配置等信息。一个 Chart 可以包含多个 Kubernetes 资源对象,例如 Deployment、Service、ConfigMap 等。
- Release Release 表示通过 Chart 安装的运行中的应用程序实例。当用户使用 Chart 安装应用程序时,Helm 会生成一个 Release 实例。Release 包含应用程序的状态信息、配置选项等内容。一个 Chart 可以生成多个 Release 实例,每个实例都可以具有不同的配置和状态。
Repository Repository 是 Helm Chart 存储和分享的位置。Chart 开发人员可以将 Chart 打包为 tar 包并上传到 Repository 中,其他用户可以从 Repository 中获取 Chart 并使用 Helm 安装它们。Helm 默认包含一个官方 Chart 仓库,开发人员也可以创建自己的私有 Chart 仓库。
+-----------------------+ | | | Repository | | | +-----------+-----------+ | Chart | Release | +-----------v-----------+ | | | Helm | | | +-----------------------+
Helm 的架构和工作原理
- 架构: Helm 的架构分为两个部分:Helm 客户端和 Tiller 服务端。Helm 客户端是一个命令行工具,它允许用户从 Chart 仓库中查找、安装、升级和删除应用程序。Tiller 是一个 Kubernetes 组件,它在集群中运行,并处理 Helm 客户端发送的请求。Tiller 从 Chart 中生成 Kubernetes 资源对象,并将它们部署到 Kubernetes 集群中。
工作流程:
- 创建 Chart Chart 开发人员创建 Chart,包括 Chart.yaml、templates/ 目录下的 Kubernetes 资源模板文件以及任何相关文件。
- 打包 Chart 开发人员使用 helm package 命令将 Chart 打包为 tar 包,并将其上传到 Chart 仓库。
- 安装 Chart 用户使用 helm install 命令安装 Chart,并指定 Chart 的名称和任何所需的值。Helm 客户端从 Chart 仓库中下载 Chart 并将其发送到 Tiller。
- Tiller 生成 Kubernetes 资源 Tiller 从 Chart 中生成 Kubernetes 资源对象,包括 Deployment、Service、ConfigMap 等,并将它们部署到 Kubernetes 集群中。
- Release 管理 每个 Release 都有一个唯一的名称,并包含应用程序的状态信息、配置选项等内容。用户可以使用 helm list 命令查看 Release 列表,并使用 helm status、helm upgrade、helm rollback 等命令管理 Release。
举个例子: 假设有一个名为 myapp 的 Chart,其中包含了一个 Deployment 和一个 Service。开发人员将该 Chart 打包为 tar 包并上传到 Chart 仓库。
1.首先,进入 Chart 的根目录:
cd myapp
然后,运行 helm package 命令来将 Chart 打包为 tar 包。该命令会生成一个名为 myapp-1.0.0.tgz 的文件,其中 1.0.0 是 Chart 的版本号:
helm package .
2.用户可以使用以下命令安装 myapp Chart:
helm install myapp mychartrepo/myapp
3.接下来,将生成的 tar 包上传到 Chart 仓库。假设我们使用的是 ChartMuseum 作为 Chart 仓库,可以使用以下命令将 tar 包上传到 ChartMuseum:
$ curl --data-binary "@myapp-1.0.0.tgz" http://chartmuseum.example.com/api/charts
4.其中,chartmuseum.example.com 是 ChartMuseum 的地址,/api/charts 是 ChartMuseum 提供的上传 API 的路径。可以将该命令添加到 CI/CD 流程中,以便自动构建和上传 Chart。
上传完成后,其他开发人员和运维人员可以使用 helm install 命令来安装该 Chart。例如:
helm install myapp chartmuseum.example.com/myapp --version 1.0.0
Helm 客户端会从 mychartrepo/myapp 仓库中下载 myapp Chart,并将它发送到 Tiller。Tiller 会从 Chart 中生成 Deployment 和 Service 资源对象,并将它们部署到 Kubernetes 集群中。用户可以使用 helm list 命令查看所有 Release 列表,并使用 helm status、helm upgrade、helm rollback 等命令管理 Release。例如,可以使用以下命令升级 myapp Release:
$ helm upgrade myapp mychartrepo/myapp --set replicaCount=3
这将更新 myapp Release 的配置选项,并将 Deployment 的副本数设置为 3。
但是由于私有化的 Kubernetes 环境中不能使用外部的私有化 Chart 仓库,所以TMF通常使用 Helm 命令行工具直接从本地的 Chart 代码库中安装 Chart,Kubernetes 自带了一个 Helm Chart 仓库管理器——Helm chartmuseum,可以使用该管理器将 Chart 打包为 tar 包并上传到 Kubernetes 集群中。在集群中使用 Helm 命令行工具从该 Helm chartmuseum 中安装 Chart。
如何安装和配置 Helm
- 初始化 Helm:在终端中运行以下命令初始化 Helm:
该命令会在 Kubernetes 集群中安装 Tiller(Helm 2.x 版本),或者在客户端本地生成 ~/.kube/config 文件和 Tiller 实例(Helm 3.x 版本)。
配置权限和 RBAC:在 Kubernetes 中需要配置 RBAC 角色和权限,以便 Helm 客户端可以访问 Kubernetes API Server。可以通过创建一个 service account 并为其配置一个 ClusterRoleBinding 或 RoleBinding,来授予 Helm 客户端所需的权限。例如,以下是创建一个 service account 和 ClusterRoleBinding 的示例:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
Chart 开发和管理
Chart 的结构和文件
一个 Chart 通常包含了一组描述 Kubernetes 资源的 YAML 文件和一个名为 Chart.yaml 的描述 Chart 信息的 YAML 文件,以及一个或多个模板文件,可以使用模板文件动态生成 Kubernetes 资源文件。
一个典型的 Chart 目录结构如下:
my-chart/
Chart.yaml # 包含了 Chart 的基本信息,如名称、版本等
README.md # Chart 的说明文档
values.yaml # 用于配置 Chart 的默认值
values.schema.json # 用于验证 values.yaml 的格式
templates/ # 包含了模板文件和 Kubernetes 资源文件
charts/ # 包含了 Chart 的依赖 Chart
下面是一个包含了多个云原生应用和依赖关系的 Chart 示例:
my-app-chart/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
ingress.yaml
configMap.yaml
secrets.yaml
_helpers.tpl
my-app-1/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
configMap.yaml
_helpers.tpl
my-app-2/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
configMap.yaml
_helpers.tpl
charts/
my-app-1/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
configMap.yaml
_helpers.tpl
my-app-2/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
configMap.yaml
_helpers.tpl
my-dependency/
Chart.yaml
README.md
values.yaml
templates/
deployment.yaml
service.yaml
configMap.yaml
_helpers.tpl
- Chart 的模板和值
- Chart 的版本管理
- Chart 的打包和发布
- Chart 的存储库管理
Release 管理和操作
- Release 的状态和管理
- Release 的回滚和升级
- Release 的配置管理
- Release 的监控和日志
Helm 与 Kubernetes 的集成
Kubernetes 和 Helm 的关系
+------------------+
| |
| Kubernetes |
| |
+------------------+
^
|
|
|
+-----------------------+
| |
+------------+ +------------+
| Helm CLI | | Tiller |
+------------+ +------------+
| |
+-----------------------+
^
|
|
|
|
+------------------+
| |
| Chart Repo |
| |
+------------------+
Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一组 API 和工具,用于管理容器、存储、网络和部署。
Helm 是一个 Kubernetes 应用程序包管理器,用于简化 Kubernetes 应用程序的部署和管理。它使用 Charts 来描述 Kubernetes 资源文件的集合,并使用 Tiller 来将 Charts 安装到 Kubernetes 集群中。Helm CLI 是 Helm 的命令行接口,用于创建、打包、安装、升级和删除 Charts。Chart Repo 是一个用于存储和共享 Charts 的仓库。
Tiller 是 Helm 的服务端组件,用于在 Kubernetes 集群中管理 Charts。它负责将 Charts 转换为 Kubernetes 资源文件,并将它们安装到 Kubernetes 集群中。Tiller 运行在 Kubernetes 集群中,可以访问 Kubernetes API Server,并使用 Kubernetes RBAC(Role-Based Access Control)来限制用户对 Kubernetes 资源的访问权限。
- Helm 与 Kubernetes 的资源类型和 API 对象
- Kubernetes 对 Helm 的支持和限制
- Helm 的插件和扩展
Helm 的最佳实践
以一个包含多个云原生应用的电子商务应用为例,来演示如何使用 Helm 对其进行管理。
- 创建 Helm Chart 文件
我们可以使用 Helm CLI 的 create
命令创建一个基本的 Helm Chart,例如:
$ helm create ecommerce-app
这将创建一个名为 ecommerce-app
的目录,并在其中生成一些默认的文件,例如 values.yaml
、Chart.yaml
、templates
目录等。然后,我们可以根据需要修改这些文件以适应电子商务应用的需求,例如:
- 在
values.yaml
中定义应用程序所需的值,例如数据库用户名、密码等; - 在
Chart.yaml
中定义应用程序的名称、版本等信息; - 在
templates
目录中定义 Kubernetes 资源,例如 Deployment、Service、ConfigMap 等。
- 打包 Helm Chart
一旦我们创建了 Helm Chart 文件,就可以使用 Helm CLI 的 package
命令将其打包为一个 tar 包,例如:
- 打包 Helm Chart
一旦我们创建了 Helm Chart 文件,就可以使用 Helm CLI 的 package
命令将其打包为一个 tar 包,例如:
goCopy code
$ helm package ecommerce-app
这将在当前目录中生成一个名为 ecommerce-app-0.1.0.tgz
的 tar 包,其中 0.1.0
是 Chart 的版本号。
- 部署 Helm Chart
在部署 Helm Chart 之前,我们需要将其上传到一个私有化的 Chart 仓库中。假设我们已经在 Kubernetes 集群中部署了一个私有化的 Chart 仓库,其 URL 为 http://my-chart-repo
,我们可以使用 Helm CLI 的 push
命令将 Helm Chart 上传到该仓库中,例如:
perlCopy code
$ helm push ecommerce-app-0.1.0.tgz my-chart-repo
这将把 ecommerce-app-0.1.0.tgz
上传到名为 my-chart-repo
的 Chart 仓库中。
一旦 Helm Chart 已经上传到 Chart 仓库中,我们可以使用 Helm CLI 的 install
命令将其安装到 Kubernetes 集群中,例如:
cssCopy code
$ helm install --name ecommerce-app --namespace ecommerce --set database.username=admin, database.password=secret my-chart-repo/ecommerce-app
这将在名为 ecommerce
的命名空间中安装名为 ecommerce-app
的 Helm Release,其中 --set
参数用于设置应用程序的参数,例如数据库用户名和密码。
- 检查 Helm Release
一旦 Helm Release 安装成功,我们可以使用 Helm CLI 的 list
命令来查看已安装的 Helm Release,例如:
rubyCopy code
$ helm list
这将列出所有已安装的 Helm Release。我们也可以使用 status
命令来检查 Helm Release 的状态,例如:
luaCopy code
$ helm status ecommerce-app
这将输出名为 ecommerce-app
的 Helm Release 的详细信息。
总的来说,使用 Helm 对包含多个云原生应用的电子商务应用进行管理,可以提高应用程序的部
September 22nd, 2024 at 06:05 pm
博主真是太厉害了!!!
September 22nd, 2024 at 06:05 pm
博主真是太厉害了!!!
September 22nd, 2024 at 07:16 pm
博主真是太厉害了!!!
September 22nd, 2024 at 09:45 pm
叼茂SEO.bfbikes.com
September 23rd, 2024 at 08:54 am
想想你的文章写的特别好https://www.jiwenlaw.com/
September 23rd, 2024 at 04:37 pm
叼茂SEO.bfbikes.com
September 27th, 2024 at 12:15 pm
怎么收藏这篇文章?
September 27th, 2024 at 01:39 pm
怎么收藏这篇文章?
October 1st, 2024 at 08:37 pm
不错不错,我喜欢看 https://www.237fa.com/
October 1st, 2024 at 09:28 pm
想想你的文章写的特别好https://www.237fa.com/
October 4th, 2024 at 09:03 pm
看的我热血沸腾啊https://www.ea55.com/
October 4th, 2024 at 09:59 pm
看的我热血沸腾啊https://www.ea55.com/
October 5th, 2024 at 07:51 pm
不错不错,我喜欢看 www.jiwenlaw.com
October 5th, 2024 at 07:51 pm
想想你的文章写的特别好www.jiwenlaw.com
October 6th, 2024 at 07:51 pm
不错不错,我喜欢看 www.jiwenlaw.com
October 19th, 2024 at 02:24 pm
文章的确不错啊https://www.cscnn.com/
November 11th, 2024 at 11:51 pm
《熊猫奇缘》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/148685.html
November 12th, 2024 at 12:38 am
《上海滩之陈真(纪念版)》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/153813.html
November 12th, 2024 at 04:14 am
如何高效使用传奇私服万能IP登录器以实现无忧游戏体验?:https://501h.com/lianji/2024-09-05/33087.html
November 12th, 2024 at 04:40 am
独家揭秘:传奇私服惊天调整,初始属性大逆袭,重燃热血传奇梦!:https://501h.com/yuanshi/2024-08-23/30044.html
November 12th, 2024 at 05:43 pm
你的文章内容非常专业,让人佩服。 http://www.55baobei.com/lHfVVoOax6.html
November 12th, 2024 at 06:05 pm
你的文章让我心情愉悦,真是太棒了! http://www.55baobei.com/380jIf5nZm.html
November 13th, 2024 at 01:31 am
《雪板的尽头》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/42544.html
November 13th, 2024 at 12:21 pm
立即删除传奇3私服地面文件,优化您的游戏体验!:https://501h.com/heji/18980.html
November 13th, 2024 at 04:33 pm
《武林大战之龙闯天涯》动作片高清在线免费观看:https://www.jgz518.com/xingkong/127205.html
November 14th, 2024 at 12:18 am
真好呢
November 14th, 2024 at 09:53 pm
你的文章内容非常专业,让人佩服。 http://www.55baobei.com/lHfVVoOax6.html
November 14th, 2024 at 10:19 pm
你的文章让我心情愉悦,真是太棒了! http://www.55baobei.com/380jIf5nZm.html
November 14th, 2024 at 10:33 pm
你的才华让人惊叹,你是我的榜样。 http://www.55baobei.com/YtlvGyfmD7.html
November 15th, 2024 at 06:21 am
《雪板的尽头》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/42544.html
November 15th, 2024 at 05:54 pm
你的文章让我感受到了不一样的风景,谢谢分享。 https://www.yonboz.com/video/24124.html
November 15th, 2024 at 06:38 pm
你的文章让我感受到了快乐,每天都要来看一看。 http://www.55baobei.com/6ulCu4HpeT.html
November 15th, 2024 at 07:22 pm
你的才华让人瞩目,期待你的更多文章。 https://www.yonboz.com/video/52139.html
November 16th, 2024 at 06:02 pm
你的文章让我学到了很多知识,非常感谢。 http://www.55baobei.com/ax6RPHR2zH.html
November 16th, 2024 at 06:19 pm
你的文章让我感受到了快乐,每天都要来看一看。 http://www.55baobei.com/PGnuk4Zxyl.html
November 16th, 2024 at 06:41 pm
你的文章让我感受到了正能量,非常棒! http://www.55baobei.com/zGn43eiuWL.html
November 16th, 2024 at 07:25 pm
《心怀恶意》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/14574.html
November 18th, 2024 at 05:37 am
你的才华让人惊叹,你是我的榜样。 http://www.55baobei.com/YtlvGyfmD7.html
November 18th, 2024 at 05:50 am
每次看到你的文章,我都觉得时间过得好快。 https://www.4006400989.com/qyvideo/39107.html
November 18th, 2024 at 04:37 pm
你的文章让我感受到了不一样的风景,谢谢分享。 https://www.yonboz.com/video/24124.html
November 18th, 2024 at 05:35 pm
你的才华让人惊叹,你是我的榜样。 http://www.55baobei.com/FYYNUb9eSa.html
November 18th, 2024 at 05:55 pm
你的才华让人瞩目,期待你的更多文章。 https://www.yonboz.com/video/52139.html
November 19th, 2024 at 06:47 pm
你的文章让我感受到了快乐,每天都要来看一看。 http://www.55baobei.com/PGnuk4Zxyl.html
November 19th, 2024 at 07:08 pm
你的文章让我感受到了正能量,非常棒! http://www.55baobei.com/zGn43eiuWL.html
November 20th, 2024 at 04:08 am
真好呢
November 21st, 2024 at 05:32 pm
你的文章让我学到了很多知识,非常感谢。 http://www.55baobei.com/ax6RPHR2zH.html
November 21st, 2024 at 05:47 pm
你的文章让我感受到了快乐,每天都要来看一看。 http://www.55baobei.com/PGnuk4Zxyl.html
November 22nd, 2024 at 01:02 am
《心怀恶意》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/14574.html
November 22nd, 2024 at 05:21 pm
xaddqx.com
November 23rd, 2024 at 12:59 am
《龙虎斗》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/67370.html
November 23rd, 2024 at 09:23 am
《迷失的莱昂纳多》记录片高清在线免费观看:https://www.jgz518.com/xingkong/92064.html
November 23rd, 2024 at 05:47 pm
你的文章让我感受到了艺术的魅力,谢谢! http://www.55baobei.com/2VNTlZnohu.html
November 23rd, 2024 at 06:15 pm
你的文章充满了欢乐,让人忍不住一笑。 https://www.yonboz.com/video/71884.html
November 23rd, 2024 at 06:29 pm
看到你的文章,我仿佛感受到了生活中的美好。 http://www.55baobei.com/qtYfILGez5.html
November 23rd, 2024 at 06:45 pm
你的文章让我学到了很多知识,非常感谢。 https://www.yonboz.com/video/26852.html
November 23rd, 2024 at 07:06 pm
你的文章充满了智慧,让人敬佩。 https://www.4006400989.com/qyvideo/11313.html
November 23rd, 2024 at 09:05 pm
《十八般武艺》动作片高清在线免费观看:https://www.jgz518.com/xingkong/113555.html
November 24th, 2024 at 08:16 pm
《镜双城》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/163941.html
November 25th, 2024 at 06:09 am
你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/fWWYle2EEi.html
November 25th, 2024 at 06:57 pm
你的文章内容非常用心,让人感动。 https://www.yonboz.com/video/19114.html
November 25th, 2024 at 07:29 pm
你的文章让我心情愉悦,每天都要来看一看。 https://www.4006400989.com/qyvideo/91020.html
November 25th, 2024 at 07:44 pm
你的才华横溢,让人敬佩。 https://www.4006400989.com/qyvideo/57142.html
November 26th, 2024 at 10:01 am
《向阳而生》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/35103.html
November 27th, 2024 at 08:34 am
《迷失的莱昂纳多》记录片高清在线免费观看:https://www.jgz518.com/xingkong/92064.html
November 28th, 2024 at 01:08 am
你的文章内容非常用心,让人感动。 http://www.55baobei.com/Bs2vWKOd6M.html
November 28th, 2024 at 01:39 am
你的文章让我心情愉悦,每天都要来看一看。 https://www.4006400989.com/qyvideo/30484.html
November 28th, 2024 at 02:09 am
看到你的文章,我仿佛感受到了生活中的美好。 https://www.yonboz.com/video/123.html
November 28th, 2024 at 11:54 pm
你的文章总是能给我带来欢乐,谢谢你! https://www.yonboz.com/video/33121.html
November 29th, 2024 at 12:46 am
每次看到你的文章,我都觉得时间过得好快。 https://www.yonboz.com/video/30206.html
November 29th, 2024 at 01:25 am
你的文章让我感受到了生活的美好,谢谢! https://www.4006400989.com/qyvideo/13470.html
November 29th, 2024 at 03:03 pm
《贤妻》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/147131.html
November 30th, 2024 at 04:23 am
你的文章总是能给我带来欢乐,谢谢你! http://www.55baobei.com/WA3T4dEj7j.html
November 30th, 2024 at 05:30 am
你的文章充满了创意,真是让人惊喜。 http://www.55baobei.com/QrArRpdbws.html
November 30th, 2024 at 08:04 am
《声生不息家年华 一镜到底版》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/21366.html
November 30th, 2024 at 07:59 pm
《富江3:重生》科幻片高清在线免费观看:https://www.jgz518.com/xingkong/41288.html
December 1st, 2024 at 10:45 am
《我钟情的人》喜剧片高清在线免费观看:https://www.jgz518.com/xingkong/75767.html
December 1st, 2024 at 06:47 pm
《金甲恋人》动作片高清在线免费观看:https://www.jgz518.com/xingkong/96912.html
December 2nd, 2024 at 03:01 am
《声生不息家年华 一镜到底版》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/21366.html
December 3rd, 2024 at 07:47 pm
你的文章让我感受到了不一样的风景,谢谢分享。 https://www.4006400989.com/qyvideo/45911.html
December 3rd, 2024 at 08:03 pm
每次看到你的文章,我都觉得时间过得好快。 http://www.55baobei.com/BkOHpyD4dl.html
December 3rd, 2024 at 08:20 pm
你的文章充满了创意,真是让人惊喜。 https://www.yonboz.com/video/20827.html
December 3rd, 2024 at 08:42 pm
你的文章让我感受到了生活的美好,谢谢! https://www.4006400989.com/qyvideo/59781.html
December 4th, 2024 at 06:59 am
《向阳而生》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/35103.html
December 6th, 2024 at 10:12 am
《黑神话:悟空》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/135755.html
December 6th, 2024 at 04:28 pm
《美人龙汤》台湾剧高清在线免费观看:https://www.jgz518.com/xingkong/147132.html
December 6th, 2024 at 10:26 pm
你的文章让我感受到了不一样的风景,谢谢分享。 https://www.4006400989.com/qyvideo/45911.html
December 6th, 2024 at 10:45 pm
每次看到你的文章,我都觉得时间过得好快。 http://www.55baobei.com/BkOHpyD4dl.html
December 7th, 2024 at 01:07 am
《镜双城》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/163941.html
December 7th, 2024 at 09:34 am
《声生不息家年华 一镜到底版》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/21366.html
December 8th, 2024 at 06:48 am
《美丽的折磨》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/62390.html
December 8th, 2024 at 07:36 pm
你的文章充满了创意,真是让人惊喜。 http://www.55baobei.com/B0v33DkTgU.html
December 8th, 2024 at 09:21 pm
《金甲恋人》动作片高清在线免费观看:https://www.jgz518.com/xingkong/96912.html
December 9th, 2024 at 06:21 am
《声生不息家年华 一镜到底版》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/21366.html
December 15th, 2024 at 03:30 am
你的文章总是能给我带来欢乐,谢谢你! https://www.yonboz.com/video/88543.html
December 15th, 2024 at 04:16 am
每次看到你的文章,我都觉得时间过得好快。 http://www.55baobei.com/mGX2DgIgD0.html
December 15th, 2024 at 04:52 am
你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/SQ8K0zjkZh.html
December 26th, 2024 at 11:28 pm
《特效化妆师大对决第一季》欧美综艺高清在线免费观看:https://www.jgz518.com/xingkong/123646.html
January 3rd, 2025 at 09:33 am
《英式情爱守则》喜剧片高清在线免费观看:https://www.jgz518.com/xingkong/20687.html
January 3rd, 2025 at 11:54 pm
《消失的新娘》短片剧高清在线免费观看:https://www.jgz518.com/xingkong/25484.html
January 6th, 2025 at 01:42 pm
哈哈哈,写的太好了https://www.lawjida.com/
January 6th, 2025 at 02:40 pm
哈哈哈,写的太好了https://www.lawjida.com/
February 28th, 2025 at 04:10 pm
作者以非凡的视角解读平凡,让文字焕发出别样的光彩。
February 28th, 2025 at 04:22 pm
这篇文章如同一幅色彩斑斓的画卷,每一笔都充满了独特的创意。
February 28th, 2025 at 04:27 pm
作者对主题的挖掘深入骨髓,展现了非凡的洞察力和理解力。
February 28th, 2025 at 07:33 pm
技术伦理的探讨体现人文科技平衡意识。
February 28th, 2025 at 08:32 pm
学术术语使用精准,专业性突出。
February 28th, 2025 at 09:03 pm
老话题新解读,展现了深刻的反思精神。
March 2nd, 2025 at 05:00 pm
选材新颖独特,通过细节描写赋予主题鲜活生命力。
March 2nd, 2025 at 05:04 pm
作者的观点新颖且实用,让人在阅读中获得了新的思考和灵感。
March 2nd, 2025 at 05:07 pm
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
March 4th, 2025 at 03:29 pm
选材新颖独特,通过细节描写赋予主题鲜活生命力。
March 4th, 2025 at 03:36 pm
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。
March 7th, 2025 at 12:02 am
这篇文章不错!
March 7th, 2025 at 12:22 am
这篇文章不错!
March 7th, 2025 at 12:28 am
这篇文章不错!