前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯云 findops Crane集训营】深入了解 Crane 开源项目之实验操作指南

【腾讯云 findops Crane集训营】深入了解 Crane 开源项目之实验操作指南

作者头像
用户10216580
发布2023-10-16 18:22:07
2990
发布2023-10-16 18:22:07
举报
文章被收录于专栏:一叶知秋

引言: 最近我参加了由腾讯云联合 CSDN 推出的“腾讯云 Finops Crane 开发者集训营”活动,通过这个活动我对腾讯云的 Finops Crane 开源项目有了更深入的了解。在本篇博客中,我将分享我对该项目的认识和体验,并介绍其中一些关键特性和实验操作指南。

1. 什么是 Finops Crane?

Finops Crane 是腾讯云推出的一款开源项目,它是一套用于云资源管理和优化的工具集。该项目旨在帮助开发者和云架构师更好地管理云资源、降低成本、优化性能,并提供实时的可视化监控和报告。

2. 主要特性:

云资源管理:Finops Crane 提供了一套丰富的工具和功能,可以帮助用户对云资源进行全面管理和优化,包括资源的创建、配置、监控和删除等。 成本控制:该项目提供强大的成本控制功能,可以帮助用户深入了解资源消耗情况,并提供优化建议,以降低云资源的成本。 自动化操作:Finops Crane 支持自动化的任务调度和操作执行,用户可以根据需求定义定时任务,实现自动化的资源管理和优化。 实时监控和报告:项目内置了实时监控和报告功能,用户可以随时查看资源的使用情况、性能指标和报告数据,从而更好地了解云资源的状态和趋势。


3.实验指南:

3.1实验内容介绍

随着云原生技术的发展,越来越多的公司正在选择将应用运行在云上或者自建的 Kubernetes 集群上,但是许多机构的调研发现,绝大多数的用户集群资源利用率并不高,浪费严重。本次训练营将会演示如何快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用。

相关系统介绍

Kubernetes

Kubernetes是用于自动部署、扩展和管理“容器化应用程序”的开源系统。该系统由Google设计并捐赠给Cloud Native Computing Foundation来使用。 它旨在提供“跨主机集群的自动部署、扩展以及运行应用程序容器的平台”。 它支持一系列容器工具,包括Docker等。

3.2实验步骤

实验准备步骤 (课前准备) 安装 kubectl 请参考官方文档依据你的本地环境系统参考对应的文档安装 kubectl:安装工具 | Kubernetes 安装 Helm 请参考官方文档依据你的本地环境系统参考对应的文档安装 Helm:Helm | 安装Helm 安装 kind 请参考官方文档依据你的本地环境系统参考对应的文档安装 kind:kind – Quick Start 安装 Docker 请参考官方文档依据你的本地环境系统参考对应的文档安装 docker:Get Docker | Docker Documentation

本地安装 Crane

安装本地的 Kind 集群和 Crane 组件

以下命令将安装 Crane 以及其依赖 (Prometheus/Grafana).

代码语言:javascript
复制
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -

如果上面安装命令报网络错误,可以用本地的安装包执行安装,在命令行中执行以下安装命令:

代码语言:javascript
复制
# 必须在 installation 的上级目录例如:我们预设好的 training 跟目录中执行
​
# Mac/Linux
bash installation/local-env-setup.sh
​
# Windows
./installation/local-env-setup.sh

确保所有 Pod 都正常运行:

代码语言:javascript
复制
$ export KUBECONFIG=${HOME}/.kube/config_crane
$ kubectl get pod -n crane-system
​
NAME                                             READY   STATUS    RESTARTS       AGE
craned-6dcc5c569f-vnfsf                          2/2     Running   0              4m41s
fadvisor-5b685f4cd6-xpxzq                        1/1     Running   0              4m37s
grafana-64656f6d54-6l24j                         1/1     Running   0              4m46s
metric-adapter-967c6d57f-swhfv                   1/1     Running   0              4m41s
prometheus-kube-state-metrics-7f9d78cffc-p8l7c   1/1     Running   0              4m46s
prometheus-server-fb944f4b7-4qqlv                2/2     Running   0              4m46s

提示:Pod 的启动需要一定的时间,等几分钟后输入命令查看后集群状态是否都 Running

访问 Crane Dashboard

代码语言:javascript
复制
kubectl -n crane-system port-forward service/craned 9090:9090
​
# 后续的终端操作请在新窗口操作,每一个新窗口操作前请把配置环境变量加上(不然会出现8080端口被拒绝的提示)
export KUBECONFIG=${HOME}/.kube/config_crane

点击 这里 访问 Crane Dashboard

安装Metrics Server

用以下命令安装 Metrics Server:

代码语言:javascript
复制
kubectl apply -f installation/components.yaml
kubectl get pod -n kube-system

创建测试应用

用以下命令启动一个 Deployment 用 hpa-example 镜像运行一个容器, 然后将其暴露为一个 服务(Service):

代码语言:javascript
复制
kubectl apply -f installation/php-apache.yaml
​
kubectl apply -f installation/nginx-deployment.yaml

创建 EffectiveHPA

代码语言:javascript
复制
kubectl apply -f installation/effective-hpa.yaml
运行以下命令查看 EffectiveHPA 的当前状态:

kubectl get ehpa
输出类似于:

NAME         STRATEGY   MINPODS   MAXPODS   SPECIFICPODS   REPLICAS   AGE
php-apache   Auto       1         10                       0          3m39s

增加负载

代码语言:javascript
复制
# 在单独的终端中运行它
# 如果你是新创建请配置环境变量 
export KUBECONFIG=${HOME}/.kube/config_crane
​
# 以便负载生成继续,你可以继续执行其余步骤
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"

现在执行:

代码语言:javascript
复制
# 准备好后按 Ctrl+C 结束观察
# 如果你是新创建请配置环境变量 
export KUBECONFIG=${HOME}/.kube/config_crane
​
kubectl get hpa ehpa-php-apache --watch
随着请求增多,CPU利用率会不断提升,可以看到 EffectiveHPA 会自动扩容实例。

说明:预测数据需要两天以上的监控数据才能出现。

成本展示

Crane Dashboard 提供了各式各样的图表展示了集群的成本和资源用量

 3.3 使用示例:

下面是一些使用 Finops Crane 的示例场景: - 自动停止闲置资源:通过设定规则和定时任务,Finops Crane 可以检测和自动停止闲置的云资源,从而节省成本。 - 资源性能优化:通过实时监控和报告,Finops Crane 可以帮助用户分析资源的性能瓶颈,并提供优化建议,以提升应用程序的性能。 - 预测和规划:基于历史数据和趋势分析,Finops Crane 可以预测资源需求,帮助用户做出合理的资源规划和预算安排。

4.结论:

腾讯云 Finops Crane 是一个功能强大的开源项目,为开发者和云架构师提供了一套全面的资源管理和优化工具。通过使用Finops Crane,用户可以有效地管理云资源、降低成本并优化性能。该项目具有自动化操作、实时监控和报告等特性,使用户能够更好地了解云资源的使用情况并做出相应的决策。

在实际应用中,Finops Crane可以用于自动停止闲置资源,通过设定规则和定时任务,及时检测并停止不再使用的云资源,从而避免资源的浪费和成本的增加。此外,通过实时监控和报告功能,用户可以获取资源的性能指标和使用情况,及时发现性能瓶颈并采取相应的优化措施。

另一个重要的应用场景是资源的预测和规划。Finops Crane基于历史数据和趋势分析,能够预测未来的资源需求,帮助用户做出合理的资源规划和预算安排。这有助于避免资源不足或过剩的问题,提高资源利用率并确保应用程序的正常运行。

总之,腾讯云 Finops Crane开源项目为开发者提供了一个强大的工具集,帮助他们更好地管理和优化云资源。通过自动化操作、实时监控和报告等功能,用户可以降低成本、提高性能,并进行有效的资源规划。如果您对云资源管理和优化感兴趣,我强烈推荐您了解并尝试使用腾讯云 Finops Crane开源项目。

关于腾讯云 Finops Crane 集训营: Finops Crane集训营主要面向广大开发者,旨在提升开发者在容器部署、K8s层面的动手实践能力,同时吸纳Crane开源项目贡献者,鼓励开发者提交issue、bug反馈等,并搭载线上直播、动手实验组队、有奖征文等系列技术活动。既能让开发者通过活动对 Finops Crane 开源项目有深入了解,同时也能帮助广大开发者在云原生技能上有实质性收获。 为奖励开发者,我们特别设立了积分获取任务和对应的积分兑换礼品。

活动介绍送门:https://marketing.csdn.net/p/038ae30af2357473fc5431b63e4e1a78

开源项目: https://github.com/gocrane/crane

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 什么是 Finops Crane?
  • 2. 主要特性:
  • 3.实验指南:
  • 3.1实验内容介绍
  • 相关系统介绍
    • Kubernetes
    • 3.2实验步骤
      • 本地安装 Crane
        • 成本展示
        •  3.3 使用示例:
        • 4.结论:
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档