k8s(Kubernetes)是什么?
Kubernetes(简称k8s)是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。它由Google设计并捐赠给Cloud Native Computing Foundation(CNCF)来维护。Kubernetes源自Google多年运行容器化工作负载的经验,其设计目标是提供一个用于自动部署、扩展、以及运行应用程序容器的平台,无论运行环境是公有云、私有云还是混合云。
Kubernetes的核心概念
Pod
Pod是Kubernetes中的最小部署单元,包含一个或多个容器。这些容器共享网络、存储和配置环境。在实际应用中,Pod通常只包含一个容器,但在某些情况下,一个Pod可以包含多个紧密协作的容器。
Node
Node(节点)是Kubernetes集群中的一台工作机器,可以是物理服务器也可以是虚拟机。每个Node上运行着Pod,并由Master节点负责管理和调度。
Cluster
Cluster(集群)是由多个Node组成的Kubernetes部署单元。Cluster的管理和调度由Master节点负责。Master节点包括API Server、Scheduler、Controller Manager和etcd等组件。
Service
Service是Kubernetes中定义的一种抽象,定义了一组Pod的访问策略。Service通过标签选择器来定位Pod,并为它们提供一个稳定的访问接口,即使Pod的IP地址发生变化,Service的访问地址也不会改变。
Namespace
Namespace用于在一个Kubernetes集群中将资源划分为逻辑上的组,从而实现资源的隔离和管理。每个Namespace都有自己的资源配额和访问控制策略。
核心特性和主要功能
服务发现和负载均衡: Kubernetes可以使用DNS名称或自己的IP地址暴露容器,并在容器之