k8s之pod控制器

Pod控制器类型:

ReplicationController  à Replicaset

Replicaset:维持用户期望的pod副本数  标签选择器:以便选定由自己选定管理的pod副本  pod资源模板:完成pod资源的新建

特点:管理无状态的pod资源,精确反映用户所定义的目标数量

K8s不建议直接使用Replicaset,而是使用Deployment

Deployment:工作在replicaset上,通过控制replicaset来控制pod

Deployment具备replicaset功能,还具有滚动更新,回滚,等更多强大机制,还提供声明式配置功能,管理群体,而不关注单个节点

DaemSet:确保集群中的每一个node只运行一个特定的pod副本,实现系统级的后台任务,也具有标签选择器,也可以指定部分满足条件的node运行一个pod副本,比如监控具有ssd存储的node节点

以上共同的特点:pod服务无状态,pod服务必须是守护进程类的,

Job:一次性作业,任务完成,pod退出

Cronjob:周期性运行,每一次完成,pod退出

Statefulset:管理有状态的运用pod,每一个pod运用,每一个pod副本,都是单独管理,

备注:

TPR: third party resource,  1.2 ~ 1.7版本 支持第三方资源

CDR: custom defined resource ,  1.8+版本  支持自定义资源

Operator

Helm:

Pod控制详解:

replicaset

kubectl explain replicaset

kubectl explain rs

spec控制器规格

kubectl explain rs.spec

模板 既pod模板

kubectl explain rs.spec.template

模板规格 pod模板规格

kubectl explain rs.spec.template.spec

实例:定义一个replicaset控制器

vim replicaset-demo.yaml

apiVersion: apps/v1  控制器版本

kind: ReplicaSet  类型

metadata:    控制器元数据

name: myapp  控制器name 也是创建的pod的名称

namespace: default  控制器名称空间

spec:  控制器规格

replicas: 2  创建2个副本

selector:  控制器选择器

matchLabels:  匹配

app: myapp  选择的pod标签

release: canary

template:   pod模板

metadata:  pod模板元数据

name: myapp-pod  pod模板的pod名,实际使用选择器的name

labels:  pod模板的pod标签

app: myapp  pod模板pod标签名

release: canary

environment: qa

spec:  pod模板的pod的spec

containers:

- name: myapp-container

image: ikubernetes/myapp:v1

ports:

- name: http

containerPort: 80

创建replicaset选择器和pod

kubectl create -f replicaset-demo.yaml

查询验证

kubectl get rs

kubectl get replicaset

kubectl get pods

kubectl describe pod myapp-r65th

验证创建的replicaset控制器

kubectl delete pods myapp-r65th 删除一个pod,replicaset控制器会重新创建一个pod,以维持2个pod

kubectl get pods

如果pod数量大于2个

kubectl get pods --show-labels

kubectl create -f pod-demo.yaml

kubectl label pods pod-demo release=canary  这种情况pod的label标签和 myapp的一样,控制器replicaset会认为是和myapp同类型的pod,那么就会随机终止并删一个这样的pod以维持2个副本

kubectl get pods --show-labels

动态扩容:

kubectl edit rs myapp

kubectl edit replicaset myapp

修改replicas: 的值即可

动态升级:

kubectl edit rs myapp

kubectl edit replicaset myapp

kubectl edit 控制器类型 控制器名

修改- image:ikubernetes/myapp:v2即可

查询版本验证

kubectl get rs -o wide

注:只是升级镜像,容器升级需要重新建

原文地址:https://www.cnblogs.com/leiwenbin627/p/11296275.html

时间: 2024-09-29 07:19:05

k8s之pod控制器的相关文章

k8s的pod控制器

pod控制器 二.ReplicaSet控制器 三.Deployment控制器 Replicas(副本数量): Selector(选择器): Pod Template(Pod模板): strategy(更新策略): revisionHistoryLimit(历史版本记录): rollbackTo: progressDeadlineSeconds: paused: 3.Deployment更新升级 4.Deployment扩容 5.修改滚动更新策略 6.金丝雀发布 7.Deployment版本回退

还不会用 K8s 集群控制器?那你会用冰箱吗?(多图详解)

作者 | 阿里云售后技术专家?声东 导读:当我们尝试去理解 K8s 集群工作原理的时候,控制器(Controller)肯定是一个难点.这是因为控制器有很多,具体实现大相径庭:且控制器的实现用到了一些较为晦涩的机制,不易理解.但是,我们又不能绕过控制器,因为它是集群的"大脑".今天这篇文章,作者通过分析一个简易冰箱的设计过程,来帮助读者深入理解集群控制器的产生,功能以及实现方法. K8s 集群核心组件大图 下图是 K8s 集群的核心组件,包括数据库 etcd,调度器 Scheduler,

Kubernetes/7.Pod控制器-Deployment

Pod控制器-Deployment 本章节开始,将对控制器逐个进行讲解和分析,我们先讲解最基础且最常用的控制器:Deployment! 控制器对象的分类 What is Deployment? Deployment的更新机制 ReplicaSet 命令补充 Deployment-demo 备注 1.控制器对象的分类 1.守护进程型 1.无状态应用:非系统级应用(Nginx等) 推荐使用:Deployment,ReplicaSet 2.无状态应用:系统级应用 应用场景:日志和监控收集客户端:场景就

Kubernetes/8.Pod控制器-DaemonSet

Pod控制器-DaemonSet 本章节给你带来第二个控制器:DaemonSet的讲解.你将了解到:什么是DaemonSet,以及他的配置实战,最后我还引出了污点和容忍度的专有名词,如果你已经有了一定的基础,可以选择性地直接去阅读该章节(看个人). What is DaemonSet? 命令补充 实战配置 知识点补充 备注 1.What is DaemonSet? DaemonSet是一个确保每个符合规则的node节点有且仅有一个Pod的控制器.你要注意以下两点: 1.新节点加入集群,也会新增一

Kubernetes之标签与Pod控制器详解

一.标签 标签的主要作用:解决同类型的资源对象越来越多,为了更好的管理,按照标签分组: 常用的标签分类:release(版本):stable(稳定版).canary(金丝雀版本.可以理解为测试版).beta(测试版)environment(环境变量):dev(开发).qa(测试).production(生产)application(应用):ui.as(应用软件).pc.sctier(架构层级):frontend(前端).backend(后端).cache(缓存.隐藏)partition(分区):

Kubernetes Pod 控制器

在机器人技术和自动化中,控制环是一个控制系统状态的不终止的循环 这是一个控制环的例子:"房间里的温度自动调节器"当你设置了温度,告诉了温度自动调节器你的"期望状态",房间的实际温度是"当前状态".通过对设备的开关控制,温度自动调节器让其当前状态无限接近于期望状态.控制器通过 k8s的apiserver 去监控集群的公共状态,并致力于将当前状态转变为所期望的状态. 中文参考官方:怎么描述Kubernetes架构控制器的 kubernetes 之Po

K8s的POD连接数据库时报错

[[email protected] xxxx]# ./showlog.sh dr iff-dr-1128668949-lb90g 2017-09-29 03:21:57,575 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction: Logging - STABLE org.wildfly.swarm:logging:2017.8.1 2017-09-29 03:21:57,612 INFO [org.wildfly.s

Pod控制器

一.Pod控制器简介 ReplicationController(目前已废弃) ReplicaSet(不建议直接使用):用户期望的Pod副本数,标签选择器以便选择自己管理控制的副本,Pod资源模板来完成Pod的新建,主要管理无状态的Pod资源副本 Deployment:通过控制ReplicaSet之上来工作,支持滚动更新,回滚,基于声明式创建,在Pod运行中可动态修改Pod参数 DaemonSet:以守护进程的方式来控制Pod,在集群中每个节点运行一个Pod副本 Job:执行一次性的作业Pod

Kubernetes之Pod控制器,ReplicaSet,Deployment,DaemonSet

目录 Kubernetes之Pod控制器,ReplicaSet,Deployment,DaemonSet ReplicaSet Deployment控制器 创建Deployment Deployment更新 Deployment扩容 金丝雀发布 Deployment回滚 DaemonSet 定义 DaemonSet演示 redis-filebeat DaemonSet的滚动更新 Kubernetes之Pod控制器,ReplicaSet,Deployment,DaemonSet Kubernete