docker - Kubernetes 中的项目级方法是什么?
问题描述
我公司有一个项目需要 3-4 天的部署时间。我考虑了一下,并尝试使用 Kubernetes 为这个项目制作一种部署模式。
我阅读了所有相关内容,但进入项目级别会产生一些问题。到现在都做了什么...
- 在 ubuntu VM 中创建了一个主节点和一个工作节点的 Kubernetes 集群。
- 了解我需要创建一个部署文件、服务文件、持久卷和声明。
- 创建了一个自定义镜像,基础镜像为 CentOS7 和 python2.7,有一定的要求,并将它们上传到 docker hub 上。
现在我创建了一个 Deployment.yml 文件来拉取该图像,但它显示 CrashLoopBackOff 错误并且它无法通过 Deployment.yml 文件拉取图像
注意:我使用 docker 单独拉取了图像并且它正在工作。
提前致谢 :)
解决方案
这是一个非常广泛的领域,但我可以给你一些关于 kubernetes 的高水平要点。
- 为不同的项目创建不同的集群。还为不同的环境(如 QA、Dev、Production)创建不同的集群。
- 为单个项目设置资源配额。此外,您的部署应该对 RAM 和 CPU 有资源限制。精确估计每个应用程序的资源需求。
- 使用命名空间进行逻辑分隔并使用标签始终是一个好方法。
- 如果您想遵循基于模板的方法,您可以搜索 helm 图表。
- 你的 k8s 节点、磁盘、部署、服务、入口你创建的任何其他类型的 kubernetes 对象都应该有标签。
- 使用节点自动缩放(特定于云)和水平 pod 自动缩放技术以获得更好的缩放和弹性。
- 始终尝试跨区域分布您的 k8s 部署以实现故障转移策略。如果您的托管区域的某些部分出现任何问题,那么您的应用程序应该支持它。
- 如果您想将项目转移到一些知名的云提供商,请尝试将云提供的安全和防火墙规则与您的 k8s 集群集成。
我希望这会有所帮助。
推荐阅读
- mongodb - 猫鼬模型保存
- next.js - create-next-app 在 2 台不同的机器上抛出相同的错误 - “无效的 href 传递给路由器:”
- python - 在seaborn(python)中绘制具有多个带宽的线
- amazon-ec2 - 如何从 cli 设置卷名
- php - Foreach 多个变量
- sed - 我正在寻找一个 sed 命令,以将源代码中的多行注释减少为单行
- ios - 在 SwiftUI 中跟随导航链接后底部的灰色条
- api - 使用 Netinfo 在 AsyncStorage React Native 中持久化 API 数据
- php - PHP zip_open 和 new ZipArchive() 导致退出
- c++ - 嵌套对象的 Gmock