Kubernetes提供了多种抽象的资源,通过定义这些资源,你可以部署和管理应用程序的不同方面,如容器配置、网络代理、存储等。以下是一些常见的资源。
Pod(容器组):Pod是Kubernetes中最小的可部署单元,它可以包含一个或多个容器,这些容器可以相互共享网络和存储资源。
Deployment(部署):部署和管理应用程序,监控相关Pod的状态,以确保其与用户定义的期望状态保持一致。
Service(服务):定义一组Pod的访问方式,通过负载均衡将请求转发到这些Pod上。
Namespace(命名空间):用于将集群划分为多个独立的工作环境,不同命名空间中的资源相互隔离,从而方便组织和管理资源。
例如:在Kubernetes集群中,可以根据项目创建相应的命名空间,如project-a、project-b和project-c;在每个命名空间中,创建资源(如Deployment、Service等)以部署相应的应用程序,如应用A、应用B、应用C,如图1-4所示。
图1-4 Kubernetes核心资源关系
此外,还可以根据以下情况创建命名空间。
如果一个集群由多个团队使用,则可以根据团队创建命名空间,如team-a、team-b。
如果一个集群具有多个部署环境,则可以根据环境创建命名空间,如test、dev、prod。