kubernetes实践之四:深入理解控制器(workload)
一.Pod与controllers的关系
- controllers:在集群上管理和运行容器的对象
- 通过label-selector相关联
- Pod通过控制器实现应用的运维,如伸缩,升级等
二.Deployment
- 部署无状态应用
- 管理Pod和ReplicaSet
- 具有上线部署、副本设定、滚动升级、回滚等功能
- 提供声明式更新,例如只更新一个新的Image
应用场景:Web服务,微服务
创建Deployment:
# kubectl apply -f nginx-deployment.yaml
查看Deployment信息:
#kubectl get deployments
上图中涉及到数量解释如下:
READY:0/3 当前准备好的副本数量0,期望副本数3 (即Deployment里面定义的replicas)
UP-TO-DATE: 最新版本副本数量,在滚动升级中,有多少副本已经升级成功
AVAILABLE:当前集群可用的副本数量,及存活的Pod数量
最终结果如下:
查看副本数量:
# kubectl get rs
查看Deployment控制pod水平拓展过程
# kubectl describe deployment nginx-deployment
三.StatefulSet
- 部署有状态应用
- 每个节点都有固定身份ID
- 集群的规模比较固定
- 如果磁盘损坏,集群内的某个节点无法运行
应用场景:mysql集群,MongoDB集群,Zookeeper集群
四.DaemonSet
- 在每一个Node上运行一个Pod
- 新加入的Node也同样会自动运行一个Pod
应用场景:zabbix agent,saltstack agent
创建DaemonSet:
# kubectl apply -f agent.yaml
查看daemonset信息
# kubectl get daemonset
五.Job
- 普通任务(Job)
一次性执行
官方案例:https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
应用场景:离线数据处理
部署perl
# kubectl apply -f https://k8s.io/examples/controllers/job.yaml
查看job
#kubectl get jobs
查看日志:
# kubectl logs pi-lzsh6
- 定时任务(CronJob)
像Linux的Crontab一样
官方案例:https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/
应用场景:通知,备份
部署CronJob:
# kubectl create -f https://k8s.io/examples/application/job/cronjob.yaml
查看pod
# kubectl get pods
查看日志:
六.控制器小结
- Deployment:无状态部署
- StatefulSet:有状态部署
- DaemonSet:守护进程部署
- Job & CronJob:批处理
kubernetes实践之四:深入理解控制器(workload)的更多相关文章
- 基于 Kubernetes 实践弹性的 CI/CD 系统
大家好,我是来自阿里云容器服务团队的华相.首先简单解释一下何为 Kubernetes 来帮助大家理解.Kuberentes 是一个生产可用的容器编排系统.Kuberentes 一方面在集群中把所有 N ...
- OpenStack实践系列⑦深入理解neutron和虚拟机
OpenStack实践系列⑦深入理解neutron和虚拟机 五.深入理解Neutron 5.1 虚拟机网卡和网桥 [root@node1 ~]# ifconfig brq65c11cc3-8e: fl ...
- Redis进阶实践之四Redis的基本数据类型(转载4)
Redis进阶实践之四Redis的基本数据类型 一.引言 今天正式开始了Redis的学习,如果要想学好Redis,必须先学好Redis的数据类型.Redis为什么会比以前的Memchaed等内存缓存软 ...
- K8s之实践Pod深入理解
K8s之实践Pod深入理解 1.同一pod下的nginx+php+mysql nginx+php+mysql.yaml文件 --- apiVersion: v1 kind: Secret meta ...
- kubernetes实践之五:深入理解Service及内部DNS搭建
一.Service存在的意义: 防止Pod失联(服务发现) 定义一组Pod的访问策略(负载均衡) 支持ClusterIP,NodePort以及LoadBalancer三种类型 Service的底层实现 ...
- kubernetes实践之三:深入理解Pod对象
一.Pod定义 最小部署单元 一组容器集合 一个pod中的容器共享网络命名空间 Pod是短暂的 二.Pod容器分类 基础容器 维护整个Pod的网络命名空间 初始化容器 先于业务容器开始执行,在应用启动 ...
- kubernetes学习控制器之StatefulSet控制器
StatefulSet介绍 一.StatefulSet概述 StatefulSet是用来管理stateful(有状态)应用的StatefulSet管理Pod时,确保Pod有一个按序增长的ID与Depl ...
- 实践中总结——理解haslayout和BFC
1.HASLAYOUT 首先,haslayout翻译成中文就是:有布局. 所谓布局,指的是一个元素可以对本身和里边的元素进行尺寸计算和定位.这里只是谈IE6/7,据说微软之所以不是对所有元素默认有布局 ...
- kubernetes port nodePort targetPort 理解
port The port that the service is exposed on the service's cluster ip (virsual ip). Port is the serv ...
随机推荐
- 异步任务spring @Async注解源码解析
1.引子 开启异步任务使用方法: 1).方法上加@Async注解 2).启动类或者配置类上@EnableAsync 2.源码解析 虽然spring5已经出来了,但是我们还是使用的spring4,本文就 ...
- 基于分支限界法的旅行商问题(TSP)一
旅行推销员问题(英语:Travelling salesman problem, TSP)是这样一个问题:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路.它是组合优化 ...
- python爬虫入门(九)Scrapy框架之数据库保存
豆瓣电影TOP 250爬取-->>>数据保存到MongoDB 豆瓣电影TOP 250网址 要求: 1.爬取豆瓣top 250电影名字.演员列表.评分和简介 2.设置随机UserAge ...
- 条件随机场CRF(二) 前向后向算法评估标记序列概率
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在条件随机场CRF(一)中我们总结了CRF的模 ...
- .NET开发设计模式-模板模式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Oracle12c中SQL优化(SQL TUNING)新特性之SQL计划指令
SQL计划指令是Oracle12c中自适应查询优化的功能之一.SQL计划指令就像“额外的提醒” ,用以提醒优化器你先前选择了的计划并不是最优的,典型的是因为错误的势评估.错误的势评估往往是由统计信息缺 ...
- 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较
1.Xen.KVM.VMware.hyper-v等虚拟化技术的比较,xen和kvm,是开源免费的虚拟化软件. vmware是付费的虚拟化软件. hyper-v比较特别,是微软windows 2008 ...
- MySql常用两大存储引擎简介
MyISAM存储引擎简介 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件. 首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.M ...
- c#Socket客户端和服务端的信息发送
这是我制作的界面信息,c# Socket通信的简单使用,刚开始学习,不对的地方请大家指教,目前是可以运行的,之后自己在慢慢添加新的东西.同时了解Tcp协议的三次握手.希望对跟我一样的初学者有所帮助. ...
- apply的应用和匿名函数的封装应用
JS中的call()和apply()方法 博客分类: JS 1.方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用 ...