🐇明明跟你说过:个人主页
🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅
🔖行路有良友,便是天堂🔖
目录
3. DaemonSet、StatefulSet等高级对象介绍
四、Kubernetes资源对象
1、Pod : Kubernetes的最小部署单元
在 Kubernetes 中,Pod 是最小的部署单元,它是一组紧密关联的容器的集合,共享相同的网络命名空间和存储卷。Pod 通常用于运行一个或多个紧密耦合的容器,并提供了一种简单而灵活的方式来管理这些容器的生命周期和资源。
Pod的一些特性和用途:
- 容器的逻辑组合:Pod 可以包含一个或多个容器,这些容器共享相同的网络命名空间、IP 地址和存储卷,可以相互通信和共享数据,从而实现了容器之间的紧密集成和协作。
- 共享网络命名空间:Pod 中的所有容器共享同一个网络命名空间,它们可以通过 localhost 来进行相互通信,无需额外的网络配置。这样可以简化容器之间的通信,并提高通信的性能和效率。
- 共享存储卷:Pod 中的所有容器可以共享同一个存储卷,用于共享数据和持久化存储。这样可以实现容器之间的数据共享和持久化,例如在多个容器之间共享配置文件、日志文件等。
- 生命周期管理:Pod 作为一个整体单元进行管理,可以统一管理 Pod 中的所有容器的生命周期,包括启动、停止、重启等操作。这样可以确保容器之间的一致性和可靠性。
- 调度和资源管理:Pod 可以被 Kubernetes 调度到集群中的任意节点上运行,根据节点的资源情况和调度策略进行分配。Pod 可以指定资源需求和限制,以便 Kubernetes 进行资源管理和调度。
2、Service:服务发现与负载均衡
在 Kubernetes 中,Service 是一种抽象,用于定义一组 Pod 的逻辑集合,并为它们提供统一的访问入口。Service 提供了服务发现和负载均衡的功能,使得客户端可以通过访问 Service 的虚拟 IP 地址来访问后端 Pod,而无需直接关注后端 Pod 的具体 IP 地址和端口。
1. Service的一些特性和用途:
- 服务发现:Service 为后端 Pod 提供了稳定的虚拟 IP 地址和 DNS 记录,客户端可以通过访问 Service 的虚拟 IP 地址或 DNS 名称来发现和访问后端 Pod,无需直接关注后端 Pod 的具体地址和端口。
- 负载均衡:Service 可以将客户端的请求分发到后端 Pod 上,以实现负载均衡和高可用性。根据 Service 的类型和配置,Kubernetes 会使用不同的负载均衡算法,如轮询、最小连接数等,将请求分发到多个后端 Pod 上。
- 稳定的虚拟 IP 地址:Service 为后端 Pod 提供了一个稳定的虚拟 IP 地址,即 ClusterIP,这个 IP 地址由 Kubernetes 管理,并且在后端 Pod 发生变化时保持不变,从而确保了客户端与后端 Pod 之间的连接稳定性。
- 多种类型:Kubernetes 支持多种类型的 Service,包括 ClusterIP、NodePort、LoadBalancer 等。每种类型的 Service 都提供了不同的访问方式和负载均衡策略,可以根据实际需求选择合适的类型。
- 头部服务:Service 还可以作为其他资源对象的头部服务(Headless Service),不会分配 ClusterIP,但会为每个 Pod 分配一个 DNS 记录,用于服务发现和连接管理
2. Service的类型:
ClusterIP:
- ClusterIP 类型的 Service 提供了集群内部的服务发现和负载均衡功能。它为 Service 分配一个集群内部的虚拟 IP 地址,该 IP 地址只能在集群内部访问,用于提供给集群内部的其他 Pod 使用。
NodePort:
- NodePort 类型的 Service 在 ClusterIP 的基础上,通过在每个节点上暴露一个静态端口(NodePort)来提供集群外部的访问入口。外部客户端可以通过访问任意节点的 NodePort 来访问 Service,Kubernetes 将根据 NodePort 将流量转发到相应的后端 Pod。<