Kubernetes(k8s)是什么?架构是怎么样的?6分钟快速入门_哔哩哔哩_bilibili
Kubernetes(通常称为 K8s)是一个开源平台,用于自动化容器化应用程序的部署、扩展和管理。它最初是由 Google 设计并捐赠给 Cloud Native Computing Foundation(CNCF)来维护。Kubernetes 成为了容器编排技术中最流行和广泛支持的系统之一。
核心特性
- 服务发现和负载均衡:Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果流量到容器高,Kubernetes 能够负载均衡和分配网络流量,以便部署稳定。
- 存储编排:Kubernetes 允许您自动挂载您选择的存储系统,无论是本地存储、公共云提供商如 GCP 或 AWS,或者网络存储系统如 NFS、iSCSI 等。
- 自动部署和回滚:您可以用 Kubernetes 描述期望的部署状态,而 Kubernetes 控制器则可以自动更改实际状态以匹配期望状态。如果有什么不对,Kubernetes 会为您回滚更改以便于诊断问题。
- 自动装箱:基于容器的资源需求和约束,自动放置容器到节点上。
- 自我修复:Kubernetes 重启失败的容器、替换和重新调度节点上的容器,直到节点本身不健康,然后它会通知并删除这些节点;如果容器不响应用户定义的健康检查,那么 Kubernetes 将停止它。
- 密钥与配置管理:Kubernetes 允许您存储和管理敏感信息,如密码、OAuth 令牌和 ssh 密钥。您可以部署和更新密钥和应用程序配置,而不用重建容器镜像,也不会在堆栈配置中暴露秘密。
架构组件
- Pod:Kubernetes 中部署容器的最小单位,通常一个 Pod 中包含一个或多个紧密关联的容器。
- Service:一种定义一组 Pod 访问策略的抽象方式,通常用于负载均衡。
- Deployment:一种描述期望状态的声明,Kubernetes 控制平面会自动维护应用的当前状态以匹配该期望状态。
- Node:物理或虚拟机器,用于运行应用程序和云工作负载。
- Master:集群的控制平面,包含 Kubernetes 控制管理组件,如 kube-apiserver、etcd、kube-scheduler、kube-controller-manager 等。
使用场景
- 微服务架构:Kubernetes 非常适合微服务架构,因为它支持服务发现和负载均衡。
- 持续集成和持续部署(CI/CD):Kubernetes 支持快速部署和回滚,适合实现 CI/CD。
- 可扩展的云原生应用:对于需要自动扩展以应对不同负载的应用,Kubernetes 提供了自动水平扩展功能。
Kubernetes 由于其强大的功能和灵活性,在云计算和容器编排领域已成为事实上的标准。