TKE节点池弹性伸缩、按量计费节点管控实操技术栈Kubernetes v1.32.13 Rocky Linux 8.6 公私云成本优化 Containerd 1.7.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案TKE节点池弹性伸缩、按量计费节点管控实操操作环境K8s 集群环境私有云自建集群k8s-master 192.168.1.10, k8s-node1 192.168.1.11, k8s-node2 192.168.1.12 公有云托管K8sACK/TKE/CCEK8s 版本 v1.32.13公私云对接场景公私云成本优化已部署私有云K8s集群和公有云托管K8s集群跨云网络已打通专线/VPN统一管理平台已配置操作系统 Rocky Linux 8.6容器运行时 Containerd 1.7.x网络插件 Calico存储已配置LocalPV/NFS/云盘已配置跨云统一监控PrometheusGrafana、统一日志ELK/EFK、统一链路追踪SkyWalking/OpenTelemetry已配置跨云统一CI/CD流水线Jenkins/GitLab CI/ArgoCD、统一镜像仓库Harbor、统一权限体系RBAC/SSO对接原理TKE节点池弹性伸缩、按量计费节点管控实操是 K8s 公有云私有云资源对接中的核心操作场景。公私云资源对接旨在实现私有云自建K8s与公有云托管K8s的统一管理、统一运维、统一监控、统一安全、统一成本管控解决多云架构下的架构差异、网络差异、存储差异、权限差异、运维差异等问题。公私云成本优化作为公私云对接的具体领域负责架构选型、网络适配、存储适配、安全权限、监控运维、迁移割接、高可用容灾、成本优化、自动化运维等核心能力。运维操作的核心目标是确保公私云集群的高可用、业务连续性、数据安全性、成本可控性通过规范化的架构选型确保公私云适配通过统一的网络存储适配确保跨云通信和数据共享通过统一的安全权限体系确保跨云安全合规通过统一的监控运维体系确保跨云可观测通过合理的成本优化确保资源利用率通过高可用容灾确保业务连续性通过自动化运维提升效率。所有操作需遵循业务无感知原则对公私云资源的变更采用灰度和滚动方式避免影响业务。详细步骤1. 公私云现状盘点与集群状态检查# 1. 检查私有云K8s集群状态kubectl get nodes -o wide --contextprivate-cloudkubectl get pods -A -o wide --contextprivate-cloud | head -30# 2. 检查公有云K8s集群状态kubectl get nodes -o wide --contextpublic-cloudkubectl get pods -A -o wide --contextpublic-cloud | head -30# 3. 检查跨云网络连通性# 从私有云节点ping公有云节点ping -c 3 public-cloud-node-ip# 检查专线/VPN状态ip route | grep -E public|vpn|专线# 检查跨云端口连通性telnet public-cloud-node-ip 6443nc -zv public-cloud-node-ip 10250# 4. 检查跨云DNS解析nslookup public-cloud-service.namespace.svc.cluster.local# 检查CoreDNS配置kubectl get cm coredns -n kube-system --contextprivate-cloud -o yaml | head -50# 5. 检查跨云镜像仓库# 检查Harborcurl -s https://harbor.example.com/api/v2.0/health# 检查镜像同步# kubectl exec -n harbor harbor-core-0 -- curl -s http://localhost:8080/api/v2.0/replications# 6. 检查跨云统一监控# 检查Prometheus联邦kubectl get cm -n monitoring prometheus-config --contextprivate-cloud -o yaml | grep -A10 remote_write\|federation# 检查Grafana多数据源kubectl get cm -n monitoring grafana-datasources --contextprivate-cloud -o yaml | head -50# 7. 检查跨云统一日志# 检查日志采集kubectl get pods -n logging --contextprivate-cloudkubectl get pods -n logging --contextpublic-cloud# 检查Elasticsearchkubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cluster/health# 8. 检查跨云权限体系# 检查RBACkubectl get clusterrolebinding --contextprivate-cloud | head -20kubectl get clusterrolebinding --contextpublic-cloud | head -20# 检查SSO/统一认证kubectl get cm -n kube-system oidc-config --contextprivate-cloud -o yaml 2/dev/null | head -30# 9. 导出配置备份kubectl get all -A -o yaml --contextprivate-cloud /tmp/private_cloud_state_$(date %Y%m%d).yamlkubectl get all -A -o yaml --contextpublic-cloud /tmp/public_cloud_state_$(date %Y%m%d).yamlecho 公私云配置已备份到 /tmp/2. 制定操作方案与备份防护# 1. 备份公私云配置操作前必做kubectl get cm -A -o yaml --contextprivate-cloud /tmp/private_cm_backup_$(date %Y%m%d_%H%M%S).yamlkubectl get secret -A -o yaml --contextprivate-cloud /tmp/private_secret_backup_$(date %Y%m%d_%H%M%S).yamlkubectl get deployment,statefulset,daemonset -A -o yaml --contextprivate-cloud /tmp/private_workload_backup_$(date %Y%m%d_%H%M%S).yamlkubectl get cm -A -o yaml --contextpublic-cloud /tmp/public_cm_backup_$(date %Y%m%d_%H%M%S).yamlkubectl get secret -A -o yaml --contextpublic-cloud /tmp/public_secret_backup_$(date %Y%m%d_%H%M%S).yamlkubectl get deployment,statefulset,daemonset -A -o yaml --contextpublic-cloud /tmp/public_workload_backup_$(date %Y%m%d_%H%M%S).yaml# 2. 记录当前公私云状态echo 公私云状态记录 $(date) /tmp/cloud_status_$(date %Y%m%d).txtecho --- 私有云节点 --- /tmp/cloud_status_$(date %Y%m%d).txtkubectl get nodes -o wide --contextprivate-cloud /tmp/cloud_status_$(date %Y%m%d).txtecho --- 公有云节点 --- /tmp/cloud_status_$(date %Y%m%d).txtkubectl get nodes -o wide --contextpublic-cloud /tmp/cloud_status_$(date %Y%m%d).txtecho --- 跨云网络 --- /tmp/cloud_status_$(date %Y%m%d).txtping -c 3 public-cloud-node-ip /tmp/cloud_status_$(date %Y%m%d).txt 21cat /tmp/cloud_status_$(date %Y%m%d).txt# 3. 制定操作方案cat /tmp/cloud_operation_plan.md EOF# 公私云操作方案## 一、操作目标## 二、影响范围评估## 三、操作步骤与时间窗口## 四、回滚方案## 五、验证标准## 六、风险点与应对措施EOFecho 操作方案模板已创建# 4. 确认业务窗口echo 当前时间: $(date)echo 建议在业务低峰期执行公私云操作避免影响业务# 5. 通知相关业务方# echo 公私云运维操作通知 | mail -s 公私云通知 adminexample.com3. 执行公私云配置适配操作# 1. 检查公私云架构差异# 私有云控制平面kubectl get pods -n kube-system --contextprivate-cloud | grep -E apiserver|controller|scheduler|etcd# 公有云控制平面托管通常不可见kubectl get nodes --contextpublic-cloud# 检查版本差异kubectl version --contextprivate-cloud --shortkubectl version --contextpublic-cloud --short# 2. 检查公私云网络适配# 私有云网络kubectl get cm -n kube-system calico-config --contextprivate-cloud -o yaml 2/dev/null | head -30# 公有云网络kubectl get cm -n kube-system --contextpublic-cloud | grep -i calico\|flannel\|vpc# 检查Service类型kubectl get svc -A --contextprivate-cloud | grep LoadBalancerkubectl get svc -A --contextpublic-cloud | grep LoadBalancer# 3. 检查公私云存储适配# 私有云StorageClasskubectl get storageclass --contextprivate-cloud# 公有云StorageClasskubectl get storageclass --contextpublic-cloud# 检查PV/PVCkubectl get pv --contextprivate-cloud | head -10kubectl get pvc -A --contextpublic-cloud | head -10# 4. 检查公私云权限适配# 私有云RBACkubectl get clusterrole --contextprivate-cloud | head -20# 公有云RBACkubectl get clusterrole --contextpublic-cloud | head -20# 检查ServiceAccountkubectl get serviceaccount -A --contextprivate-cloud | head -10kubectl get serviceaccount -A --contextpublic-cloud | head -10# 5. 检查公私云监控适配# 私有云监控kubectl get pods -n monitoring --contextprivate-cloud# 公有云监控kubectl get pods -n monitoring --contextpublic-cloud# 检查Prometheus联邦kubectl get cm -n monitoring prometheus-config --contextprivate-cloud -o yaml | grep -A10 remote_write\|federation# 6. 执行具体公私云配置操作根据标题调整echo 执行公私云具体配置操作...echo 请根据操作方案执行具体步骤# 7. 应用公私云配置变更# kubectl apply -f /tmp/cloud_config.yaml --contextprivate-cloud# kubectl apply -f /tmp/cloud_config.yaml --contextpublic-cloud# kubectl rollout restart deployment/name -n namespace --contextprivate-cloud# kubectl rollout restart deployment/name -n namespace --contextpublic-cloud# 8. 等待配置生效kubectl rollout status deployment/name -n namespace --contextprivate-cloud --timeout120skubectl rollout status deployment/name -n namespace --contextpublic-cloud --timeout120secho 公私云配置变更完成4. 验证跨云连通性与业务无感知# 1. 验证私有云集群状态kubectl get nodes -o wide --contextprivate-cloud# 预期所有节点 Ready# 2. 验证公有云集群状态kubectl get nodes -o wide --contextpublic-cloud# 预期所有节点 Ready# 3. 验证跨云网络连通性ping -c 3 public-cloud-node-ip# 预期网络连通# 检查跨云服务访问kubectl run -it --rm debug --imagebusybox --restartNever --contextprivate-cloud -- nslookup public-cloud-service.namespace.svc.cluster.local# 预期DNS解析正常# 4. 验证跨云镜像仓库curl -s https://harbor.example.com/api/v2.0/health# 预期Harbor健康# 检查镜像同步# kubectl exec -n harbor harbor-core-0 -- curl -s http://localhost:8080/api/v2.0/replications | jq .[].status# 5. 验证跨云统一监控# 检查Prometheus指标# kubectl port-forward -n monitoring svc/prometheus 9090:9090 --contextprivate-cloud # sleep 5# curl -s http://localhost:9090/api/v1/query?queryup | jq .data.result | length# 预期有公私云指标# 6. 验证跨云统一日志# 检查Elasticsearchkubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cluster/health | jq .status# 预期green# 检查日志索引kubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cat/indices?v | head -20# 7. 验证跨云权限# 检查RBACkubectl auth can-i get pods --asuser --contextprivate-cloudkubectl auth can-i get pods --asuser --contextpublic-cloud# 预期权限符合预期# 8. 验证业务服务# 检查私有云业务kubectl get pods -n app-namespace --contextprivate-cloud# 检查公有云业务kubectl get pods -n app-namespace --contextpublic-cloud# 预期业务正常运行# 9. 清理调试资源# kubectl delete pod debug --ignore-not-found --contextprivate-cloud# pkill -f port-forward 2/dev/nullecho 验证完成5. 公私云统一监控权限与成本配置# 1. 配置公私云统一监控# 检查Prometheus联邦配置kubectl get cm -n monitoring prometheus-config --contextprivate-cloud -o yaml | grep -A10 remote_write\|federation# 配置Grafana多数据源kubectl get cm -n monitoring grafana-datasources --contextprivate-cloud -o yaml | head -50# 2. 配置公私云统一日志# 检查日志采集配置kubectl get cm -n logging -o name --contextprivate-cloud | head -10# 检查Elasticsearch索引kubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cat/indices?v | head -20# 3. 配置公私云统一权限# 检查RBAC配置kubectl get clusterrolebinding --contextprivate-cloud | head -20kubectl get clusterrolebinding --contextpublic-cloud | head -20# 检查SSO配置kubectl get cm -n kube-system oidc-config --contextprivate-cloud -o yaml 2/dev/null | head -30# 4. 配置公私云统一CI/CD# 检查Jenkins/ArgoCD配置kubectl get pods -n cicd --contextprivate-cloudkubectl get application -n argocd --contextprivate-cloud 2/dev/null# 5. 配置公私云高可用容灾# 检查备份策略kubectl get cronjob -A --contextprivate-cloud | grep -i backupkubectl get cronjob -A --contextpublic-cloud | grep -i backup# 检查容灾配置kubectl get volumesnapshot -A --contextprivate-cloud 2/dev/nullkubectl get volumesnapshot -A --contextpublic-cloud 2/dev/null# 6. 配置公私云成本优化# 检查资源标签kubectl get nodes --show-labels --contextprivate-cloud | head -10kubectl get nodes --show-labels --contextpublic-cloud | head -10# 检查资源配额kubectl get resourcequota -A --contextprivate-cloudkubectl get resourcequota -A --contextpublic-cloud# 7. 配置公私云安全合规# 检查网络策略kubectl get networkpolicy -A --contextprivate-cloudkubectl get networkpolicy -A --contextpublic-cloud# 检查安全上下文kubectl get pods -A --contextprivate-cloud -o jsonpath{.items[*].spec.securityContext} | head -20# 8. 配置公私云自动化运维# 检查自动化脚本kubectl get cronjob -A --contextprivate-cloudkubectl get cronjob -A --contextpublic-cloud# 检查GitOps配置kubectl get kustomization -A --contextprivate-cloud 2/dev/nullkubectl get kustomization -A --contextpublic-cloud 2/dev/null6. 验证操作结果与生成报告# 1. 最终验证私有云状态kubectl get nodes -o wide --contextprivate-cloud# 预期所有节点 Ready# 2. 最终验证公有云状态kubectl get nodes -o wide --contextpublic-cloud# 预期所有节点 Ready# 3. 验证跨云网络ping -c 3 public-cloud-node-ip# 预期网络连通# 4. 验证跨云监控# curl -s http://localhost:9090/api/v1/query?queryup | jq .data.result | length# 预期有公私云指标# 5. 验证跨云日志# kubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cluster/health | jq .status# 预期green# 6. 验证跨云权限# kubectl auth can-i get pods --asuser --contextprivate-cloud# 预期权限符合预期# 7. 验证业务服务kubectl get pods -n app-namespace --contextprivate-cloudkubectl get pods -n app-namespace --contextpublic-cloud# 预期业务正常# 8. 生成操作报告echo 公私云操作报告 /tmp/cloud_operation_report.txtecho 操作时间: $(date) /tmp/cloud_operation_report.txtecho 私有云节点数: $(kubectl get nodes --no-headers --contextprivate-cloud 2/dev/null | wc -l) /tmp/cloud_operation_report.txtecho 公有云节点数: $(kubectl get nodes --no-headers --contextpublic-cloud 2/dev/null | wc -l) /tmp/cloud_operation_report.txtecho 私有云异常Pod: $(kubectl get pods -A --no-headers --contextprivate-cloud 2/dev/null | grep -v Running | grep -v NAME | wc -l) /tmp/cloud_operation_report.txtecho 公有云异常Pod: $(kubectl get pods -A --no-headers --contextpublic-cloud 2/dev/null | grep -v Running | grep -v NAME | wc -l) /tmp/cloud_operation_report.txtcat /tmp/cloud_operation_report.txt# 9. 清理临时文件# rm -f /tmp/cloud_*.yaml /tmp/cloud_*.txt 2/dev/null# pkill -f port-forward 2/dev/nullecho 操作完成验证流程# 1. 私有云状态验证kubectl get nodes -o wide --contextprivate-cloud# 预期所有节点 Ready# 2. 公有云状态验证kubectl get nodes -o wide --contextpublic-cloud# 预期所有节点 Ready# 3. 跨云网络验证ping -c 3 public-cloud-node-ip# 预期网络连通# 4. 跨云监控验证# curl -s http://localhost:9090/api/v1/query?queryup | jq .data.result | length# 预期有公私云指标# 5. 跨云日志验证# kubectl exec -n logging elasticsearch-0 -- curl -s http://localhost:9200/_cluster/health | jq .status# 预期green# 6. 跨云权限验证# kubectl auth can-i get pods --asuser --contextprivate-cloud# 预期权限符合预期# 7. 业务服务验证kubectl get pods -n app-namespace --contextprivate-cloudkubectl get pods -n app-namespace --contextpublic-cloud# 预期业务正常# 8. 操作报告验证cat /tmp/cloud_operation_report.txt# 预期报告完整排错方案公私云运维成本人力成本资源成本对比检查公有云计费、私有云成本、人力成本、资源成本、运维成本、许可成本、网络成本、存储成本、对比分析公私云资源成本精细化管控计费优化检查资源使用率、计费模式、包年包月/按量、预留实例、竞价实例、资源标签、成本分摊、账单分析、优化公私云闲置资源回收利用率提升检查闲置节点、闲置Pod、闲置存储、闲置IP、闲置负载均衡、闲置镜像、识别、回收、清理、利用率提升公私云存储成本优化冷热数据分离检查存储类型、SSD/HDD、对象存储、归档存储、冷热分离、生命周期、数据压缩、去重、降本公私云网络成本优化带宽节流检查带宽、流量计费、NAT网关、负载均衡、跨可用区流量、跨地域流量、CDN、缓存、压缩、节流、降本公私云弹性降本体系常态化运行检查弹性伸缩、HPA/VPA、集群自动伸缩、定时伸缩、业务峰值、闲置回收、资源预留、成本预警、优化公私云成本异常预警规则精准控本检查成本监控、预算、阈值、预警、异常检测、账单分析、资源标签、成本分摊、责任人、整改公私云资源生命周期全流程成本管控检查资源申请、审批、创建、使用、监控、回收、销毁、全生命周期、成本台账、审计、优化