- Pods(k8s最小操作单元)
- ReplicaSet & Label(k8s副本集和标签)
- Deployments(声明式配置)
- Services(服务)
- k8s常用命令
Kubernetes(简称K8s)是一个开源的容器编排系统,用于自动化应用程序的部署、扩展和管理。自2014年发布以来,K8s迅速成为容器编排领域的行业标准,被越来越多的企业用于管理和编排容器化应用程序。K8s的设计哲学、可扩展性和强大的社区支持是其成功的关键因素。主要由Pods、ReplicaSet&Label、Deployments、Services几大部分组成。
Pods(k8s最小操作单元)
K8s的基本运行单位,代表了在集群中运行的一个或多个容器的组合。Pod内的容器由pause共享存储和网络,并且可以一起被调度到集群的某个节点上;k8s并不是直接操作container,container容器由docker管理,k8s操作它自己的最小单元pod,每个pod第一个先启动pause,用于实现k8s pod之间的网络通信;
ReplicaSet & Label(k8s副本集和标签)
在k8s中ReplicaSet(副本集)和 Label(标签)是用于管理集群中 Pod 副本数量和组织资源;ReplicaSet 的主要是确保在 Kubernetes 集群中有特定数量的 Pod 副本在运行。如果你有一个关键的应用程序,你希望这个应用程序始终有多个副本在运行,以避免单点故障。当一个 Pod 副本因为某些原因(如故障、调度问题等)死亡时,ReplicaSet 会尝试重启这个 Pod,以保持副本数量等于定义的期望值。而Label是用来标记和组织资源的。通过标签,你可以将一个或多个资源(如 Pod、Node、Service 等)打上相同的标签,然后基于这些标签进行资源的管理和调度。
Deployments(声明式配置)
Deployment用于管理Pod、ReplicaSet,可实现声明式更新、自动化扩展和缩容、自愈能力、滚动更新、版本回退、滚动回滚。
- 声明式更新:Deployments允许用户声明期望的应用程序状态,包括ReplicaSet的数量、配置等信息。Kubernetes控制器会根据Deployments的期望状态和当前状态进行比较,自动执行必要的操作以达到期望状态。
- 自动化扩展和缩容:根据Deployments中配置的Rep