1、什么是Kubernetes
Kubernetes(又称作 K8s) 是一个容器编排平台,用于管理和调度被容器化应用程序。
2、为什么需要Kubernetes
Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它极大简化了容器化应用程序的部署、扩展和管理过程,提供了高可用性、可移植性和弹性的运行环境,使开发人员能够更专注于应用程序的开发和功能实现。它是构建和管理现代化应用程序的重要工具和平台。它具有以下作用和优势:
-
自动化容器部署和管理:Kubernetes提供了丰富的功能和工具,可以自动化地部署和管理容器化应用程序。它可以根据定义的规则和策略,自动创建、启动、停止和重新启动容器,从而简化了应用程序的部署和管理过程。 -
跨平台和环境的可移植性:Kubernetes提供了跨平台和环境的可移植性,可以在不同的云服务提供商、物理机和虚拟机上运行。它提供了抽象层,屏蔽了底层基础设施的差异,使应用程序能够以一致的方式运行在不同的环境中。 -
高可用和容错性:Kubernetes支持应用程序的高可用性和容错性。它可以自动检测容器的健康状态,并在发生故障时重新启动或替换容器。它还提供了负载均衡和故障转移的机制,确保应用程序始终可用。 -
水平扩展和负载均衡:Kubernetes支持应用程序的水平扩展,可以根据负载自动调整副本数量。它还提供了负载均衡的机制,将流量分发到多个副本中,以提高应用程序的性能和可扩展性。 -
灵活的存储管理:Kubernetes提供了灵活的存储管理机制,可以将存储卷附加到容器中,以持久化存储数据。它支持多种存储后端,如本地存储、网络存储和云存储,并提供了卷管理和快照功能。 -
自动化的升级和回滚:Kubernetes支持应用程序的自动化升级和回滚。它可以根据定义的策略,自动升级应用程序的版本,并在发生问题时自动回滚到上一个稳定的版本,确保应用程序的可靠性和可用性。
3、如何使用Kubernetes
安装和配置Kubernetes集群:首先,您需要安装和配置Kubernetes集群。这可以在本地机器上搭建一个单节点集群,也可以使用云服务提供商的托管Kubernetes服务。相关命令学习
4、什么是Pod
Pod 是 Kubernetes 的调度和部署单位,它是一组关联的容器的集合。它作为一个整体,被放到集群的节点上。
4.1、特点
- 一个Pod 可以包含一个或多个相关联的容器,这些容器共享相同的网络命名空间、存储和其他资源。
- 它们可以通过 localhost 相互通信,无需进行网络配置。
- 它们可以共享存储,在同一文件系统中读取和写入数据。
- 它们具有相同的生命周期,同时启动、停止和重新启动,因此它们可以共同处理请求,并在需要时协同工作。由 Kubernetes 管理其生命周期。
- 通常,一个应用程序由多个相关联的容器组成,这些容器可以放在一个 Pod 中运行。
- 通过将多个 Pod 部署在集群中的不同节点上,Kubernetes 可以实现负载均衡和容错性,提高应用程序的可靠性和可扩展性。
5、Kubernetes与Pod的关系
Kubernetes 负责管理 Pod 的生命周期。它可以根据应用程序的需求自动创建和销毁 Pod,也可以对 Pod 进行伸缩和调度。
6、关系总结(核心就这些)
- 先有一个
应用程序A = 前端A1、后端A2 - 编写2个Dockerfile分别使用
docker构建2个镜像ImageA1、ImageA2 - 编写
pod构建的YAML文件。可以是pod1=ImageA1 + ImageA2。也可以是 pod1=ImageA1、pod2=ImageA2 - 使用
kubectl apply -f pod.yaml命令构建pod,应用到Kubernetes集群中