学习笔记4:docker和k8s选择简述

docker和 k8s

占用资源 
使用客户体量

Docker 和 Kubernetes(K8s)都是流行的容器化技术,但它们在资源管理和使用上有一些不同。以下是关于两者资源占用和使用客户体量的详细比较,基于具体数据和信息:

Docker 资源占用

  1. CPU 和内存资源

    • Docker 容器可以通过 docker stats 命令查看其资源使用情况,包括 CPU 使用率、内存使用量、网络 I/O 和磁盘 I/O 等 。
    • Docker 允许通过 --cpu-shares--cpus--cpu-period--cpu-quota 等参数控制容器的 CPU 使用份额和限制 。
    • 内存资源可以通过 --memory--memory-swap 参数进行限制,确保容器不会消耗过多的内存资源 。
  2. 资源限制和请求

    • Docker 容器的资源限制和请求可以通过 docker run 命令中的参数进行设置,例如 -m--memory 来设置内存限制,--cpu-shares 来设置 CPU 份额 。
  3. 资源监控

    • 使用 docker stats --no-stream 命令可以查看容器的当前资源使用情况,包括 CPU、内存、网络 I/O 和磁盘 I/O 。

Kubernetes 资源占用

  1. 资源请求和限制

    • Kubernetes 允许为每个容器指定资源请求(requests)和限制(limits),这些信息会影响 Pod 的调度和资源分配 。
    • 资源请求是容器启动时所需的最小资源量,而资源限制是容器可以使用的最大资源量。如果容器尝试使用超过限制的资源,可能会被终止 。
  2. 资源类型

    • Kubernetes 中常见的资源类型包括 CPU 和内存。CPU 资源以 "cpu" 为单位,内存以字节为单位。还可以指定巨页(Huge Page)资源 。
  3. 资源配额

    • Kubernetes 通过 ResourceQuota 对象为每个命名空间提供资源使用限制,防止某个团队或用户过度消耗资源 。
    • 资源配额可以限制命名空间中 Pod 的总数、CPU 和内存的使用量等 。
  4. 资源监控

    • Kubernetes 通过 kubelet 将 Pod 的资源使用情况作为 Pod status 的一部分来报告。如果配置了监控工具,可以直接从指标 API 或监控工具获得 Pod 的资源使用情况 。

使用客户体量

  • Docker

    • Docker 适合小型到中型的应用,或者需要快速部署和运行单个容器的场景。它不需要复杂的集群管理,适合开发和测试环境 。
  • Kubernetes

    • Kubernetes 适合大规模、复杂的应用部署,支持高可用性和自动扩展。它适合生产环境和需要多容器协调运行的场景 。

选择建议

  • 小型应用或开发测试环境

    • 如果你的应用规模较小,或者主要在开发和测试环境中使用,Docker 可能是更好的选择。它简单易用,资源占用相对较低 。
  • 大规模生产环境

    • 如果你需要管理大量的容器,或者需要高可用性和自动扩展,Kubernetes 是更合适的选择。它提供了更强大的资源管理和调度能力 。

通过以上比较,你可以根据自己的具体需求和应用场景选择合适的容器化技术。

相关推荐
汀、人工智能7 分钟前
修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
docker·容器
微刻时光20 分钟前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
吃面不喝汤6632 分钟前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
chnyi6_ya1 小时前
一些写leetcode的笔记
笔记·leetcode·c#
Leighteen1 小时前
Docker常用命令
docker·容器
丶21361 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
青椒大仙KI112 小时前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
liangbm32 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
潮汐退涨月冷风霜2 小时前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
GoppViper2 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理