-
Controller Manager,即控制平面,用于调度程序以及节点状态检测。
-
Nodes,构成了 Kubernetes 集群的集体计算能力,实际部署容器运行的地方。
-
Pods,Kubernetes 集群中资源的最小单位。
-
Master节点:Master节点是Kubernetes集群的控制中心,用于管理和控制整个集群。它包含以下组件:
-
kube-apiserver:提供Kubernetes API的接口服务,处理来自用户和其他组件的请求。
-
etcd:一个高度可靠的分布式键值存储数据库,保存集群的所有配置数据。
-
kube-scheduler:负责决定将容器分配到哪个节点上运行。
-
kube-controller-manager:包含许多控制器,用于处理集群中的各种资源(如Pod、Service、PersistentVolume等)。
-
cloud-controller-manager:用于与宿主云平台交互,例如管理云服务提供商的资源。
-
Node节点:Node节点是Kubernetes集群中的工作节点,用于运行容器化应用程序。它包含以下组件:
-
kubelet:运行在每个Node节点上的主要管理代理,负责管理和监控在节点上的容器。
-
kube-proxy:负责Kubernetes服务发现和负载均衡,将流量转发到适当的Pod。
-
容器运行时(Container Runtime):例如Docker、containerd等容器运行时,用于在Node节点上创建和管理容器。
-
资源对象:
-
Pod:Kubernetes中的最小部署和调度单元,包含一个或多个相关容器。Pod代表了一组紧密关联的容器,并提供了它们之间共享和通信的环境。
-
Service(服务):定义了一组Pod的访问方式和网络规则,提供了一种抽象机制来访问应用程序。
-
Deployment:用于定义和管理Pod副本的对象,确保指定数量的Pod副本处于运行状态。
-
ConfigMap(配置映射):ConfigMap用于存储应用程序的配置信息,如环境变量、配置文件等。ConfigMap可以通过键值对的形式来存储配置信息,并且可以被一个或多个Pod使用。
-
task:定时任务
-
Namespace:用于将集群划分为多个虚拟集群,以提供更好的资源管理、访问控制和隔离性能力。
-
其他组件:
-
Ingress Controller:负责将外部请求路由到集群内不同Service的组件。
-
DNS:为集群中的Pod提供域名解析服务,使Pod能够相互通信。
-
Dashboard:提供基于Web界面的Kubernetes集群管理工具。
-
Volume:用于提供持久化存储的抽象机制,使容器能够在不同节点上运行时保持数据的持久性。
-
把项目代码部署到Kubernetes(K8s)上:
-
构建docker镜像
-
连接到Kubernetes集群:kubectl,连接到目标Kubernetes集群
-
创建Kubernetes部署配置文件:在Kubernetes中,使用部署(Deployment)或状态集(StatefulSet)来定义和管理应用程序的部署。
-
创建Kubernetes服务配置文件:在Kubernetes中,服务(Service)用于公开和暴露应用程序内部的服务。
-
验证部署kubectl get pods 和 kubectl get services
-