GoCrane/Crane 项目安装与部署完全指南
前言
GoCrane/Crane 是一个开源的 Kubernetes 资源管理与成本优化平台,它能够帮助用户更好地管理和优化 Kubernetes 集群中的资源使用。本文将详细介绍 Crane 的安装部署过程,包括前置条件、安装步骤以及各种访问方式。
系统要求
在开始安装 Crane 之前,请确保您的环境满足以下最低要求:
- Kubernetes 集群版本 1.18 或更高
- Helm 3.1.0 或更高版本
安装准备
Helm 安装
Helm 是 Kubernetes 的包管理工具,Crane 使用 Helm Chart 进行部署。如果您尚未安装 Helm,请先安装 Helm 工具。
监控组件安装
Crane 依赖 Prometheus 作为默认的指标提供者,并使用 Grafana 展示成本估算数据。如果您的环境中尚未部署这些组件,可以按照以下步骤安装。
Prometheus 安装
Prometheus 是一个开源的监控和告警工具套件,Crane 使用它来收集集群指标数据。
helm repo add prometheus-community [Prometheus Helm Chart 仓库地址]
helm install prometheus -n crane-system \
--set pushgateway.enabled=false \
--set alertmanager.enabled=false \
--set server.persistentVolume.enabled=false \
-f [override_values.yaml 文件地址] \
--create-namespace prometheus-community/prometheus
Grafana 安装
Grafana 是一个开源的可视化平台,Crane 使用它来展示成本估算报告。
helm repo add grafana [Grafana Helm Chart 仓库地址]
helm install grafana \
-f [override_values.yaml 文件地址] \
-n crane-system \
--create-namespace grafana/grafana
Crane 核心组件安装
Crane 主组件安装
helm repo add crane [Crane Helm Chart 仓库地址]
helm install crane -n crane-system --create-namespace crane/crane
Fadvisor 安装
Fadvisor 是 Crane 的成本分析组件,用于提供详细的成本报告。
helm install fadvisor -n crane-system --create-namespace crane/fadvisor
可选组件:Crane Scheduler
Crane Scheduler 是一个智能调度器,可以根据资源使用情况进行更优的 Pod 调度。
helm install scheduler -n crane-system --create-namespace crane/scheduler
安装验证
安装完成后,可以通过以下命令检查所有组件是否正常运行:
kubectl get deploy -n crane-system
预期输出应包含以下关键组件:
- craned (Crane 主服务)
- grafana (可视化面板)
- prometheus-server (监控服务)
- metric-adapter (指标适配器)
- crane-agent (节点代理)
自定义安装
如果您需要更灵活的安装方式,可以直接使用 YAML 文件部署 Crane:
git clone [Crane 代码仓库地址]
kubectl apply -f deploy/manifests
kubectl apply -f deploy/craned
kubectl apply -f deploy/metric-adapter
如果您已有 Prometheus 服务,可以通过设置环境变量指定其地址:
export CUSTOMIZE_PROMETHEUS=[您的Prometheus地址]
访问 Crane 仪表板
Crane 提供了丰富的 Web 仪表板,可以通过多种方式访问:
1. 端口转发(快速访问)
kubectl -n crane-system port-forward service/craned 9090:9090
访问 http://localhost:9090 即可
2. NodePort 方式
kubectl patch svc craned -n crane-system -p '{"spec": {"type": "NodePort"}}'
PORT=$(kubectl get svc -n crane-system craned -o jsonpath='{.spec.ports[?(@.name == "dashboard-service")].nodePort}')
NODE_IP=$(kubectl get node -ojsonpath='{.items[].status.addresses[?(@.type == "InternalIP")].address}')
echo "访问地址: http://${NODE_IP}:${PORT}"
3. LoadBalancer 方式
kubectl patch svc craned -n crane-system -p '{"spec": {"type": "LoadBalancer"}}'
kubectl get svc -n crane-system craned
4. Ingress 方式
根据您的 Ingress 控制器类型,可以选择以下配置之一:
Nginx Ingress 示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-crane-dashboard
namespace: crane-system
spec:
rules:
- host: dashboard.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: craned
port:
number: 9090
ingressClassName: nginx
Traefik Ingress 示例
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: dashboard-crane-ingress
namespace: crane-system
spec:
entryPoints:
- web
routes:
- kind: Rule
match: Host(`dashboard.yourdomain.com`)
services:
- name: craned
port: 9090
查看成本报告
要访问 Grafana 成本报告面板,可以使用以下命令:
export POD_NAME=$(kubectl get pods --namespace crane-system -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace crane-system port-forward $POD_NAME 3000
然后访问 http://localhost:3000,使用默认凭证 admin/admin 登录。
总结
本文详细介绍了 GoCrane/Crane 项目的完整安装流程,包括监控组件的部署、核心服务的安装以及多种访问方式。通过 Crane,您可以获得 Kubernetes 集群的全面资源使用洞察和成本优化建议。安装完成后,建议进一步探索 Crane 提供的各种功能,如自动资源推荐、智能调度等高级特性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考