实验环境依旧是k8s快照,拉取本次实验所需的镜像文件;
然后在master节点上传已经编写好的yaml文件;
然后同步会话,导入镜像;
pod控制器:
标签选择器--》标签:
标签:
在Kubernetes(k8s)中,标签(Labels)是一种非常重要的机制,用于对资源对象(如Pods、Nodes、Services等)进行分类和识别。标签以键值对的形式存在,可以附加到资源对象上,以便进行后续的管理和选择。以下是k8s中标签的定义方式的详细解释:
一、标签的定义
标签(Labels)在Kubernetes中是通过键值对(key=value)的形式来定义的。每个资源对象都可以附加任意数量的标签,而同一个标签也可以被附加到多个资源对象上。这种多对多的关系使得标签成为了一种灵活且强大的资源分类和管理工具。
二、标签的语法规则
-
键(Key):键的命名需要遵守一定的规则,通常建议以字母或数字开头,后面可以跟字母、数字、下划线(_)、破折号(-)和点(.)。键的长度不能超过63个字符。此外,虽然前缀是可选的,但如果指定了前缀,则前缀必须符合DNS子域名的命名规则。
-
值(Value):值可以为空,也可以包含字母、数字、下划线(_)、破折号(-)和点(.)。值的长度同样不能超过63个字符。如果值非空,则必须以字母或数字开头和结尾。
标签定义的方式:
基于等式的定义 :app=nginx
基于键值对的定义方式 :app: nginx
基于集合的标签定义方式 :{key:app,operator:In,values:[nginx,apache]}
app:nginx
app:apache
在Kubernetes(k8s)中,选择器(Selector)是一个非常重要的概念,它用于定义一组资源的选取规则。这些资源通常是Pods(容器的实例),但也可以扩展到其他Kubernetes对象,如Services、Deployments等。选择器的主要作用是帮助Kubernetes对资源进行分组和选择,以便进行调度、扩展、滚动更新等操作。
复制控制器(replication controller;RC):
让你的pod的副本数,保持在你的“预期值”
复制集控制器 (RS)
复制集控制器是复制控制器的升级版;支持基于集合的标签定义方式;
deployment(部署)(无状态集控制器)是RS的管理者。能够管理复制集控制器
滚动更新
修改副本数(扩缩容)
无状态服务:nginx、apache(tomcat)不需要持久化存储数据;没有任何依赖的环境;例如mysql中的主从复制架构就是有状态的服务;
有状态集控制器 (STS)
mysql、redis、kafka、rabbitmq
删除方式:非级联、级联
守护进程集控制器 (DS)
能够在创建pod的时候,在每一个节点上都创建出来一个。不必指定副本数。
自动按照节点的数量来匹配出一个副本数。
即:副本数和node节点数相同;
计划任务控制器
在Kubernetes(简称K8s)中,有状态集(StatefulSet)和无状态集(通常通过Deployment来管理无状态应用)是两种用于部署和管理不同类型应用程序的机制。它们在处理应用程序的状态、存储、网络以及扩展性等方面存在显著差异。以下是关于有状态集和无状态集的主要区别:
一、状态与存储
-
有状态集(StatefulSet)
-
无状态集(Deployment)
二、网络与身份
-
有状态集(StatefulSet)
-
无状态集(Deployment)
三、扩展性与管理
-
有状态集(StatefulSet)
-
无状态集(Deployment)
四、典型应用场景
-
有状态集(StatefulSet):适用于需要持久化存储和稳定网络标识的应用程序,如数据库、消息队列、Redis等。
-
无状态集(Deployment):适用于无状态的应用程序,如Web服务器、微服务中的某些组件等。