【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰裤辣~(二)

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰裤辣~(二)

四、单机版Crane部署流程🍑

4.1. Crane系统一键化安装⚒️

🎆 Plan A:执行此命令直接一键化安装部署

# 执行此命令,可以一键部署,但是需要访问外网。
curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -

安装过程演示:

[root@Crane ~]# curl -sf https://raw.githubusercontent.com/gocrane/crane/main/hack/local-env-setup.sh | sh -
Step1: Create local cluster:  /root/.kube/config_crane
Deleting cluster "crane" ...
Creating cluster "crane" ...
 ✓ Ensuring node image (kindest/node:v1.21.1) 🖼
 ✓ Preparing nodes 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
Set kubectl context to "kind-crane"
You can now use your cluster with:
kubectl cluster-info --context kind-crane --kubeconfig /root/.kube/config_crane
Thanks for using kind! 😊
Step1: Create local cluster finished.
Step2: Installing Prometheus
"prometheus-community" has been added to your repositories
NAME: prometheus
LAST DEPLOYED: Wed May 10 12:12:54 2023
NAMESPACE: crane-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The Prometheus server can be accessed via port 8080 on the following DNS name from within your cluster:
prometheus-server.crane-system.svc.cluster.local
Get the Prometheus server URL by running these commands in the same shell:
  export POD_NAME=$(kubectl get pods --namespace crane-system -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")
  kubectl --namespace crane-system port-forward $POD_NAME 9090
#################################################################################
######   WARNING: Persistence is disabled!!! You will lose your data when   #####
######            the Server pod is terminated.                             #####
#################################################################################
#################################################################################
######   WARNING: Pod Security Policy has been disabled by default since    #####
######            it deprecated after k8s 1.25+. use                        #####
######            (index .Values "prometheus-node-exporter" "rbac"          #####
###### .          "pspEnabled") with (index .Values                         #####
######            "prometheus-node-exporter" "rbac" "pspAnnotations")       #####
######            in case you still need it.                                #####
#################################################################################
For more information on running Prometheus, visit:
https://prometheus.io/
Step2: Installing Prometheus finished.
Step3: Installing Grafana
NAME: grafana
LAST DEPLOYED: Wed May 10 12:13:00 2023
NAMESPACE: crane-system
STATUS: deployed
REVISION: 1
NOTES:
1. Get your 'admin' user password by running:
   kubectl get secret --namespace crane-system grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
2. The Grafana server can be accessed via port 8082 on the following DNS name from within your cluster:
   grafana.crane-system.svc.cluster.local
   Get the Grafana URL to visit by running these commands in the same shell:
     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
3. Login with the password from step 1 and the username: admin
#################################################################################
######   WARNING: Persistence is disabled!!! You will lose your data when   #####
######            the Grafana pod is terminated.                            #####
#################################################################################
Step3: Installing Grafana finished.
Step4: Installing Crane
"crane" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "crane" chart repository
...Successfully got an update from the "grafana" chart repository
...Successfully got an update from the "prometheus-community" chart repository
Update Complete. ⎈Happy Helming!⎈
NAME: crane
LAST DEPLOYED: Wed May 10 12:13:06 2023
NAMESPACE: crane-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NAME: fadvisor
LAST DEPLOYED: Wed May 10 12:13:10 2023
NAMESPACE: crane-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
Step4: Installing Crane finished.
NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
craned                          0/1     1            0           3s
fadvisor                        0/1     1            0           0s
grafana                         0/1     1            0           10s
metric-adapter                  0/1     1            0           3s
prometheus-kube-state-metrics   0/1     1            0           16s
prometheus-server               0/1     1            0           16s
Please wait for all pods ready
After all pods ready, Get the Crane Dashboard URL to visit by running these commands in the same shell:
    export KUBECONFIG=/root/.kube/config_crane
    kubectl -n crane-system port-forward service/craned 9090:9090


⏭️Plan B:如果访问网络发生错误,可以使用本地安装包执行安装操作,具体执行命令如下:

# 上传Crane安装包到系统中
[root@Crane training]# pwd
/root/training
[root@Crane training]# ll
total 4
drwxr-xr-x. 7 root root 4096 May 10 13:50 installation
# 进入training目录,查看文件内容
[root@Crane installation]# ll
total 228
-rw-r--r--. 1 root root   4206 May 10 13:50 components.yaml
drwxr-xr-x. 5 root root    120 May 10 13:50 crane
-rw-r--r--. 1 root root   1232 May 10 13:50 effective-hpa.yaml
drwxr-xr-x. 3 root root     77 May 10 13:50 fadvisor
drwxr-xr-x. 5 root root    124 May 10 13:50 grafana
-rw-r--r--. 1 root root 199848 May 10 13:50 grafana_override_values.yaml
drwxr-xr-x. 3 root root     96 May 10 13:50 kube-state-metrics
-rw-r--r--. 1 root root   3777 May 10 13:50 local-env-setup.sh
-rw-r--r--. 1 root root    522 May 10 13:50 nginx-deployment.yaml
-rw-r--r--. 1 root root    615 May 10 13:50 php-apache.yaml
drwxr-xr-x. 3 root root    140 May 10 13:50 prometheus
-rw-r--r--. 1 root root   4915 May 10 13:50 prometheus_override_values.yaml
# 💥必须在 installation 的上级目录执行下面这一操作(即不能修改这条命令🚫),否则安装失败。💢
bash installation/local-env-setup.sh

等待片刻时间, 查看所有的Pod 是否都正常启动运行,如下所示。再进行下一步相关操作。

[root@Crane ~]# kubectl get pods -n crane-system
NAME                                             READY   STATUS    RESTARTS   AGE
craned-75d5fcff49-2ppnn                          2/2     Running   0          121m
fadvisor-6c6867dcb9-tscxm                        1/1     Running   0          121m
grafana-8fb6974cc-kzgzf                          1/1     Running   0          121m
metric-adapter-789b5b8bc5-hnt9g                  1/1     Running   0          121m
prometheus-kube-state-metrics-69c44479cb-jlzmh   1/1     Running   0          121m
prometheus-prometheus-node-exporter-4xmrg        1/1     Running   0          121m
prometheus-server-6cb8bc86c4-wxdsz               2/2     Running   0          121m

4.2. 访问Crane Dashboard💨

重新打开一个新的终端,执行如下命令:

# 🌈每打开一个终端进行操作时,都需要执行配置环境变量这一条命令(不然会出现8080端口被拒绝的提示),如下图所示。
export KUBECONFIG=/root/.kube/config_crane

c4217d6c0a592886a27d6cda2edd2a0f.png

# 执行此命令,访问Crane Dashboard。如下图所示。
kubectl -n crane-system port-forward service/craned 9090:9090

1d9098b28b4943dcb430d76fafb06074.png

💢重点💢:本实验使用虚拟机进行安装部署,直接执行127.0.0.1:9090或者192.168.200.60:9090,均无法访问到DashBoard。此时,系统需要将本地的端口做下反向代理,将9090端口转发给80,在浏览器中直接输入主机IP地址192.168.200.60即可访问。具体执行操作如下所示。

# 安装nginx服务
yum install -y nginx
# 修改nginx.conf配置文件,修改内容如下:
server_name  192.168.200.60;
location / {
proxy_pass         http://127.0.0.1:9090;
proxy_http_version 1.1;
proxy_set_header   Upgrade $http_upgrade;
proxy_set_header   Connection keep-alive;
proxy_set_header   Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Proto $scheme;
}
# 按:wq报错退出。
# 检查nginx配置文件是否正确,执行结果如下所示。
[root@Crane ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# 启动nginx服务并设置开机自启动
systemctl start && systemctl enable nginx && systemctl status nginx

如果还访问不了Dashboard,请自行检查pods是否都已经正常启动系统环境设置是否做了限制(如防火墙是否关闭或开启对应端口)。

848aa7e06682e87cd6595c806b650425.png

4.3. 添加集群🛠️

添加集群。

5424dbe3efe07457d9a5565f953896c7.png

f9da3509ca3d3c54331e05eaca65d415.png

添加完成。

a321f4f7a590b59e7c5cb61d61325c05.png

183cf82fe2be6530ba4997e09e87a5f2.png


五、集群功能演示🛠️

5.1. 使用智能弹性EffectiveHPA🥒

Crane提供了一种名为EffectiveHorizontalPodAutoscaler(EHPA)的弹性伸缩产品,它基于社区HPA技术实现了弹性控制功能,并支持更多的弹性触发策略,包括预测、观测和周期等,从而实现更高效的弹性控制,并确保了服务质量。简而言之,EHPA是一种高效的弹性伸缩方案,可以为服务提供更好的保障。

5.1.1 安装Metrics Server

# 执行命令安装Metrics Server。需要在installation上一级目录下执行此命令。💥
[root@Crane training]# kubectl apply -f installation/components.yaml
serviceaccount/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
service/metrics-server created
deployment.apps/metrics-server created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created

查看该pod是否正常启动。

[root@Crane ~]# kubectl get pod -n kube-system | grep metrics-server
metrics-server-79c88ff4f-mz96g                1/1     Running   0          16m

5.1.2 创建测试应用

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

[root@Crane training]# kubectl apply -f installation/php-apache.yaml
deployment.apps/php-apache created
service/php-apache created
[root@Crane training]# kubectl apply -f installation/nginx-deployment.yaml
deployment.apps/nginx-deployment created
[root@Crane training]# kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-758fd5cc9f-27bpz   1/1     Running   0          108s
nginx-deployment-758fd5cc9f-mxxx9   1/1     Running   0          108s
nginx-deployment-758fd5cc9f-np46c   1/1     Running   0          108s
nginx-deployment-758fd5cc9f-p8s9q   1/1     Running   0          108s
nginx-deployment-758fd5cc9f-tc2mj   1/1     Running   0          108s
php-apache-7d59cc57d4-8tnph         1/1     Running   0          2m5s

5.1.3 创建 EffectiveHPA

[root@Crane training]# kubectl apply -f installation/effective-hpa.yaml
effectivehorizontalpodautoscaler.autoscaling.crane.io/php-apache created
# 查看 EffectiveHPA 的状态信息
[root@Crane training]# kubectl get ehpa
NAME         STRATEGY   MINPODS   MAXPODS   SPECIFICPODS   REPLICAS   AGE
php-apache   Auto       1         10                       0          10s

5.1.4 增加负载测试

# 打开新的终端窗口,配置环境变量 
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"

fd8afcdcb989b1642785e43f355d0727.png

可以按CTRL+C终止上述请求。随着请求增多,CPU利用率会不断提升,可以看到 EffectiveHPA 会自动扩容实例。如下所示。

增加负载后,相关信息参数如下所示。

[root@crane training]# kubectl get hpa ehpa-php-apache --watch
NAME              REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
ehpa-php-apache   Deployment/php-apache   29%/50%   1         10        1          107s
ehpa-php-apache   Deployment/php-apache   250%/50%   1         10        1          2m1s
ehpa-php-apache   Deployment/php-apache   240%/50%   1         10        4          2m16s
ehpa-php-apache   Deployment/php-apache   109%/50%   1         10        5          2m31s
ehpa-php-apache   Deployment/php-apache   70%/50%    1         10        5          2m46s

202305111021493.png

[root@Crane training]# kubectl get ehpa
NAME         STRATEGY   MINPODS   MAXPODS   SPECIFICPODS   REPLICAS   AGE
php-apache   Auto       1         10                       6          7m1s
[root@Crane training]# kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-758fd5cc9f-27bpz   1/1     Running   0          5m22s
nginx-deployment-758fd5cc9f-mxxx9   1/1     Running   0          5m22s
nginx-deployment-758fd5cc9f-np46c   1/1     Running   0          5m22s
nginx-deployment-758fd5cc9f-p8s9q   1/1     Running   0          5m22s
nginx-deployment-758fd5cc9f-tc2mj   1/1     Running   0          5m22s
php-apache-7d59cc57d4-4zf6j         1/1     Running   0          57s
php-apache-7d59cc57d4-6b5h8         1/1     Running   0          72s
php-apache-7d59cc57d4-8tnph         1/1     Running   0          5m39s
php-apache-7d59cc57d4-kjkff         1/1     Running   0          27s
php-apache-7d59cc57d4-lwnpp         1/1     Running   0          72s
php-apache-7d59cc57d4-zhdfk         1/1     Running   0          57s

通过下面截图对比可知,创建的应用在增加负载压力测试过程中,发生了自动扩缩容

1a01256ba9db416a8de726d755991e03.png

5.2. 成本展示 🍆

集群总

b8c2e402bf13b75ca9c976476b357b77.png

ad4cba262c91af78809bb5ad71b0a5d2.png

通过登录Grafana数据可视化展示平台进行查验。本实验的输入的地址是:http://192.168.200.60/grafana

默认账号/密码:admin/admin

export KUBECONFIG=${HOME}/.kube/config_crane
kubectl -n crane-system port-forward service/grafana 8082:8082

8d9ae5621f4f25f797e30097f5e8021e.png

aeabddf5266ffc23dd8076164a2c24ff.png

5.3. 应用资源优化🥕

在 dashboard 中看到相关的成本数据,是因为在添加集群的时候安装了推荐的规则。

推荐框架会自动分析集群的各种资源的运行情况并给出优化建议。

Crane 的推荐模块会定期检测发现集群资源配置的问题,并给出优化建议。

智能推荐提供了多种 Recommender 来实现面向不同资源的优化推荐。

在成本分析>推荐规则页面可以看到安装的两个推荐规则。

0e4fb4d13d2f58a60c14801faba59afa.png这些推荐规则实际上在将 K8s 集群接入Dashboard时安装上的 RecommendationRule CRD 对象:

[root@Crane ~]# kubectl get RecommendationRule
NAME             RUNINTERVAL   AGE
idlenodes-rule   24h           5h8m
workloads-rule   24h           5h8m

RecommendationRule 是一个集群维度的对象,该推荐规则会对所有命名空间中的 Deployments 和 StatefulSets 做资源推荐和副本数推荐。

需要注意的是资源类型和 recommenders 需要可以匹配,比如 Resource 推荐默认只支持 Deployments 和 StatefulSets。

👀 查看闲置节点推荐规则的资源对象👀

[root@Crane ~]# kubectl get recommendationrule idlenodes-rule -oyaml
apiVersion: analysis.crane.io/v1alpha1
kind: RecommendationRule
metadata:
  creationTimestamp: "2023-05-10T04:27:24Z"
  generation: 2
  labels:
    analysis.crane.io/recommendation-rule-preinstall: "true"
  name: idlenodes-rule
  resourceVersion: "3494"
  uid: 034152a2-e4ae-4d3b-8223-624f2315e067
spec:
  namespaceSelector:
    any: true
  recommenders:
  - name: IdleNode
  resourceSelectors:
  - apiVersion: v1
    kind: Node
  runInterval: 24h
status:
  lastUpdateTime: "2023-05-10T04:27:24Z"
  recommendations:
  - lastStartTime: "2023-05-10T04:27:24Z"
    message: 'Failed to run recommendation flow in recommender IdleNode: Node crane-control-plane
      is not a idle node '
    recommenderRef:
      name: IdleNode
    targetRef:
      apiVersion: v1
      kind: Node
      name: crane-control-plane
  runNumber: 1

👀 查看集群生成的多个优化建议 Recommendation 对象👀

[root@Crane ~]# kubectl get recommendations -A
NAMESPACE            NAME                            TYPE       TARGETKIND   TARGETNAMESPACE      TARGETNAME                      STRATEGY   PERIODSECONDS   ADOPTIONTYPE          AGE
crane-system         workloads-rule-resource-254v6   Resource   Deployment   crane-system         metric-adapter                  Once                       StatusAndAnnotation   5h12m
crane-system         workloads-rule-resource-7c4jg   Resource   Deployment   crane-system         prometheus-kube-state-metrics   Once                       StatusAndAnnotation   5h12m
crane-system         workloads-rule-resource-hwr7p   Resource   Deployment   crane-system         prometheus-server               Once                       StatusAndAnnotation   5h12m
crane-system         workloads-rule-resource-m5ws6   Resource   Deployment   crane-system         grafana                         Once                       StatusAndAnnotation   5h12m

👀查看任意优化建议对象👀

kubectl get recommend workloads-rule-resource-254v6 -n crane-system -oyaml
apiVersion: analysis.crane.io/v1alpha1
kind: Recommendation
metadata:
  annotations:
    analysis.crane.io/run-number: "1"
  creationTimestamp: "2023-05-10T04:27:24Z"
  generateName: workloads-rule-resource-
  generation: 2
  labels:
    analysis.crane.io/recommendation-rule-name: workloads-rule
    analysis.crane.io/recommendation-rule-recommender: Resource
    analysis.crane.io/recommendation-rule-uid: ae95350e-5bfb-4fa7-955c-a69907d17b70
    analysis.crane.io/recommendation-target-kind: Deployment
    analysis.crane.io/recommendation-target-name: metric-adapter
    analysis.crane.io/recommendation-target-version: v1
    app: metric-adapter
    app.kubernetes.io/instance: crane
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: crane
    app.kubernetes.io/version: v0.10.0
    helm.sh/chart: crane-0.10.0
  name: workloads-rule-resource-254v6
  namespace: crane-system
  ownerReferences:
  - apiVersion: analysis.crane.io/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: RecommendationRule
    name: workloads-rule
    uid: ae95350e-5bfb-4fa7-955c-a69907d17b70
  resourceVersion: "3515"
  uid: b00b3e5d-400d-455d-a338-7526c5d7d6c1
spec:
  adoptionType: StatusAndAnnotation
  completionStrategy:
    completionStrategyType: Once
  targetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: metric-adapter
    namespace: crane-system
  type: Resource
status:
  action: Patch
  conditions:
  - lastTransitionTime: "2023-05-10T04:27:24Z"
    message: Recommendation is ready
    reason: RecommendationReady
    status: "True"
    type: Ready
  currentInfo: '{"spec":{"template":{"spec":{"containers":[{"name":"metric-adapter","resources":{"requests":{"cpu":"0","memory":"0"}}}]}}}}'
  lastUpdateTime: "2023-05-10T04:27:24Z"
  recommendedInfo: '{"spec":{"template":{"spec":{"containers":[{"name":"metric-adapter","resources":{"requests":{"cpu":"114m","memory":"120586239"}}}]}}}}'
  recommendedValue: |
    resourceRequest:
      containers:
      - containerName: metric-adapter
        target:
          cpu: 114m
          memory: "120586239"
  targetRef: {}
[root@Crane ~]#

通过Web控制面板也可以查看上述信息

4bdfa44f289c2db2fd9cd3326cb947b0.png

对于闲置节点推荐,由于节点的下线在不同平台上的步骤不同,用户可以根据自身需求进行节点的下线或者缩容。


应用在监控系统(比如 Prometheus)中的历史数据越久,推荐结果就越准确,建议生产上超过两周时间。


对新建应用的预测往往不准。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
8天前
|
运维 Cloud Native Java
从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望
热联集团在进行了云原生架构的升级与探索后,显著提升了业务系统的稳定性和敏捷性。这一转变不仅为公司冲击更高的销售目标奠定了坚实的技术基础,也标志着热联在数字化转型道路上迈出了关键一步。通过采用微服务、容器化等先进技术手段,热联能够更加灵活地响应市场变化,快速迭代产品和服务,满足客户日益增长的需求。
|
3月前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
537 72
|
24天前
|
人工智能 Cloud Native Java
云原生技术深度解析:从IO优化到AI处理
【10月更文挑战第24天】在当今数字化时代,云计算已经成为企业IT架构的核心。云原生作为云计算的最新演进形态,旨在通过一系列先进的技术和实践,帮助企业构建高效、弹性、可观测的应用系统。本文将从IO优化、key问题解决、多线程意义以及AI处理等多个维度,深入探讨云原生技术的内涵与外延,并结合Java和AI技术给出相应的示例。
82 1
|
28天前
|
Cloud Native API 持续交付
利用云原生技术优化微服务架构
【10月更文挑战第13天】云原生技术通过容器化、动态编排、服务网格和声明式API,优化了微服务架构的可伸缩性、可靠性和灵活性。本文介绍了云原生技术的核心概念、优势及实施步骤,探讨了其在自动扩展、CI/CD、服务发现和弹性设计等方面的应用,并提供了实战技巧。
|
6月前
|
存储 弹性计算 监控
【阿里云云原生专栏】成本优化策略:在阿里云云原生平台上实现资源高效利用
【5月更文挑战第29天】本文探讨了在阿里云云原生平台上实现资源高效利用和成本优化的策略。通过资源监控与评估,利用CloudMonitor和Prometheus等工具分析CPU、内存等使用情况,识别浪费。实施弹性伸缩策略,利用自动伸缩规则根据业务负载动态调整资源。借助容器化管理和Kubernetes编排提高资源利用率,优化存储选择如OSS、NAS,以及网络配置如VPC和CDN。示例展示了如何使用Kubernetes的HorizontalPodAutoscaler进行弹性伸缩,降低成本。
240 4
|
1月前
|
Cloud Native API C#
.NET云原生应用实践(一):从搭建项目框架结构开始
.NET云原生应用实践(一):从搭建项目框架结构开始
|
2月前
|
Kubernetes 监控 Cloud Native
Cluster Optimizer:一款云原生集群优化平台
**Cluster Optimizer** 是一款云原生集群优化平台,旨在通过自动化和智能化工具帮助企业降低云成本,解决云原生架构中的成本管理难题。面对资源闲置、配置不当和缺乏自动化优化机制等挑战,Cluster Optimizer能够深入分析云资源、应用和用户行为,精准识别优化机会,并给出具体建议,涵盖节点组、节点、GPU 节点、磁盘、持久卷和应用等多个维度。通过优化实例类型、自动扩缩容和资源分配,帮助企业降低成本、提升性能和效率。[点击此处](https://www.wiseinf.com.cn/docs/setup/) 免费安装和试用 **Cluster Optimizer 社区版**。
96 9
|
3月前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心运维成本如何降低
核心系统转型问题之云原生分布式核心运维成本如何降低
|
4月前
|
SQL Cloud Native 关系型数据库
云原生数据仓库使用问题之分组优化如何实现
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
4月前
|
存储 Kubernetes Cloud Native
云原生周刊:Score 成为 CNCF 沙箱项目
以下是内容的摘要,格式为Markdown: 开源项目: - [Trident]:NetApp维护的开源存储解决方案,支持容器化应用的持久化存储,兼容CSI接口。 - [Monokle]:Kubernetes YAML编辑器,简化配置创建、分析和部署。 - [Platform Aware Scheduling]:模块化策略驱动的Kubernetes调度器扩展,考虑平台特性。 - [cdebug]):容器和Pod故障排查工具,提供端口转发、文件系统导出等功能。