Kubernetes简介篇

文章目录

  • 前言
  • 应用部署
  • Kubernetes能做什么
  • 总结

前言

Kubernetes(简称k8s)是一个开源的容器编排和管理工具,由Google开发并捐赠给Cloud Native Computing Foundation(CNCF)管理。它能够自动化部署、扩展和管理容器化应用程序

应用部署

  • 物理机部署
    直接将应用程序部署在物理机器上面
    • 优点:操作简单
    • 缺点:应用程序可能会相互影响,不能为每个应用程序分配合适的计算资源,灵活度较差
  • 虚拟机部署
    在物理机器上面运行多个虚拟机,在每个虚拟机上面运行各自的应用程序
    • 优点:应用程序之间相互隔离,减少冲突
    • 缺点:虚拟机需要安装操作系统,浪费计算机大量资源
  • 容器化部署
    使用容器技术共享宿主机的操作系统,让应用程序运行在容器里面
    • 优点:不同容器中的应用程序相互隔离,包装应用程序,并和底层操作系统充分解耦,易于分发,部署。提供更高的灵活性、可扩展性和便利性。容器提供了一个独立于底层操作系统的运行环境,方便应用的部署和迁移。

    • 缺点:容器需要一定的内存和计算资源来运行自己的操作系统内核,相对于原生应用来说,会消耗更多的资源,但是比虚拟机部署消耗的资源要少很多,共享宿主机操作系统内核这种方式相比虚拟机部署隔离的不够彻底,但是比起物理机部署要好很多
      Kubernetes简介篇_第1张图片

单个容器的操作还很方便,但是当容器故障停机了,如何让另外一个容器启动去替补停机的容器,怎么做到自动化部署,水平扩展等一系列问题,这些问题我们称为是容器的编排问题,Kubernetes就是解决编排问题的一个开源项目,也是我们博客中的主角,相似的容器编排项目还有Swarm等等,就让读者自行去探索了

Kubernetes能做什么

容器是捆绑和运行应用程序的好方法。在生产环境中,如果需要管理运行应用程序的容器,并确保没有停机时间。例如,如果一个容器关闭,另一个容器需要启动。如果这种行为由一个系统来处理,不是更容易吗? 这就是Kubernetes的拯救之道!Kubernetes提供了弹性运行分布式系统的框架。它负责应用程序的扩展和故障转移,提供部署模式等

Kubernetes提供了:

  • 服务发现和负载均衡
    Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定

  • 存储编排
    Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等

  • 自动部署和回滚
    你可以使用 Kubernetes 描述已部署容器的所需状态, 它可以以受控的速率将实际状态更改为期望状态。 例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器

  • 自动完成装箱计算
    你为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源

  • 自我修复
    Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器, 并且在准备好服务之前不将其通告给客户端

  • 密钥与配置管理
    Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 SSH 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥

  • 批处理执行
    除了服务外,Kubernetes 还可以管理你的批处理和 CI(持续集成)工作负载,如有需要,可以替换失败的容器

  • 水平扩缩
    使用简单的命令、用户界面或根据 CPU 使用率自动对你的应用进行扩缩

  • IPv4/IPv6 双栈
    为 Pod(容器组)和 Service(服务)分配 IPv4 和 IPv6 地址

  • 可扩展性设计
    在不改变上游源代码的情况下为你的 Kubernetes 集群添加功能

总结

Kubernetes提供了强大和可靠的方式来管理和运行容器化应用程序,从而简化了应用程序的部署、扩展和管理工作,提高了应用程序的可靠性和可用性

你可能感兴趣的:(Kubernetes,kubernetes,容器,云原生)