您现在的位置是:首页 >技术杂谈 >容器化带来的问题和K8S快速认知网站首页技术杂谈

容器化带来的问题和K8S快速认知

孜泽 2025-04-01 00:01:01
简介容器化带来的问题和K8S快速认知

1. 容器化部署存在的问题

a. 问题

      • 10个物理机发布100个容器,怎么快速发布和管理
      • 用户请求过来,怎么分配请求到100个容器里面
      • 突发海量请求过来,如何根据情况进行快速扩容
      • 应用发布上线出现问题,需要进行回滚历史版本,如何进行回滚
      • 某个容器故障了,如何快速启动新容器去替代
      • ....

b. 上面容器管理的问题称为容器编排,为了解决这些问题,产生了一些容器编排的软件

      • Docker Swarm:Docker自己的容器编排工具
      • Mesos:Apache的资源管控的工具,结合Marathon使用
      • Kubernetes:Google开源的的容器编排工具, 基于内部Borg系统的开源版本

2. 什么是Kubernetes?

    • Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。
    • k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。
    • Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
    • Kubernetes是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,简称 K8S
    • 官方文档Kubernetes 文档 | Kubernetes
  • 不说那么多废话了
    • K8S的本质是一组服务器集群,可以在对应服务器集群的每个节点上运行程序,来对节点中的容器进行管理。
    • 类似Master-Work方式,每个服务器上安装特定的k8s组件,就可以形成集群,然后部署对应的应用即可。

3. k8s常见的功能:

    • 服务发现和负载均衡
      • Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。
      • 如果进入容器的流量很大, Kubernetes 能够自动实现请求的负载均衡分配网络流量,从而使部署稳定
    • 存储编排
      • Kubernetes 允许自动挂载选择的存储系统,例如本地存储、云提供商存储等。
    • 自动部署和回滚
      • 可以用k8s自动化部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。
      • 当版本发布错误,可以立刻回退到之前的版本
    • 自我修复
      • 如果某个容器宕机了,K8S 可以快速重新启动新的的容器,替换旧的容器
    • 密钥与配置管理
      • K8S允许存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。