欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > k8s_示例_根据CPU使用率自动扩展Pod数量并使Pod分布在不同节点

k8s_示例_根据CPU使用率自动扩展Pod数量并使Pod分布在不同节点

2024/10/25 15:33:37 来源:https://blog.csdn.net/weilaozongge/article/details/139630306  浏览:    关键词:k8s_示例_根据CPU使用率自动扩展Pod数量并使Pod分布在不同节点

我们从制作测试用镜像开始,后续一步一步实现在k8s中使pod根据cpu用量自动扩展pod个数。

知识准备

在做这个示例之前,需要了解k8s(也叫kubernetes)基本原理,了解k8s是用来干嘛的即可,以及deployment、service、hpa、镜像、docker等概念。不然会有些晕的,不知道这些配置和这些操作是用来做什么的。

制作镜像并上传到github仓库(ghcr.io)

准备镜像

测试用的代码在
https://download.csdn.net/download/weilaozongge/89398031 (包含代码和脚本)
或者
https://blog.csdn.net/weilaozongge/article/details/139447844?spm=1001.2014.3001.5502 (只有代码)

  1. 把代码下载下来,安装好docker环境
    执行代码包中的 docker_build.sh,会在本地创建好镜像,后续会使用这个镜像来做测试。
    执行 docker images可以查看是否成功生成镜像。

  2. 给生成的镜像打个tag
    docker tag tools_cpu_burner_by_api:latest ghcr.io/wang-xuewen/tools_cpu_burner_by_api_image:latest

上传到github仓库

  1. 创建并登录到你的 GitHub 账户。
  2. 进入 Personal Access Tokens 页面。
  3. 点击 “Generate new token”。
  4. 在 “Select scopes” 部分,选中 write:packages, read:packages, 和 delete:packages
  5. 生成并保存你的 Token。
  6. 回到本地docker环境,登录到ghcr
docker login ghcr.io -u <your-github-username> -p <your-personal-access-token>比如:docker login ghcr.io -u wang-xuewen -p ghp_tqALE31LARQNTWSBDIBLoNM1BgBpPxxxxxx
  1. 推送镜像
   docker push ghcr.io/your-github-username/your-image:tag比如:docker push ghcr.io/wang-xuewen/tools_cpu_burner_by_api_image:latest

如果成功,会在https://github.com/wang-xuewen?tab=packages 页面中看到推送上来的镜像。

安装k8s (既kubernetes)

本地k8s安装教程参考这里:
https://blog.csdn.net/weilaozongge/article/details/138954175?spm=1001.2014.3001.5502
https://blog.csdn.net/weilaozongge/article/details/139267389?spm=1001.2014.3001.5502

注意:安装好k8s之后必须安装metrics。k8s通过metrics才能感知cpu使用量,然后扩展pod个数。

创建 Deployment

Deployment是一种资源对象,用于管理Pods的部署和更新

生成secret

在创建deployment之前,需要创建secret,以便 depolyment通过认证后可以从github镜像仓库中拉取镜像。

举例:

kubectl create secret docker-registry ghcr-secret \--docker-server=ghcr.io \--docker-username=wang-xuewen \--docker-password=ghp_9xLt7VnnmC2CoYOfYJvvHsVC1Fcsxxxxxxx \--docker-email=4091xxxx@qq.com

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com