Kubernetes之Pod 控制器
定义Pod的常用资源
pods.spec.containers
- name <string> #containers 的名字
image <string> #镜像地址
imagePullPolicy <string> #如果标签是latest 就是Always(总是下载镜像) IfNotPresent(先看本地是否有此镜像,如果没有就下载) Never (就是使用本地镜像)
ports <[]Object> #是给对象列表 可以暴露多个端口 可以对每个端口的属性定义 例如:(名称(可后期调用)端口号 协议 暴露在的地址上) 暴露端口只是提供额外信息的,不能限制系统是否真的暴露
- containerPort 容器端口
hostIP 主机地址(基本不会使用)
hostPort 节点端口
name 名称
protocol (默认是TCP)
args <[]string> 传递参数给command 相当于docker中的CMD
command <[]string> 相当于docker中的ENTRYPOINT (参考地址)
如果Pod不提供
command或args使用Container,则使用Docker镜像中的cmd或者ENTRYPOINT。如果Pod提供
command但不提供args,则仅使用提供command的。将忽略Docker镜像中定义EntryPoint和Cmd。- 如果Pod中仅提供
args,则args将作为参数提供给Docker镜像中EntryPoint。 - 如果提供了
command和args,则Docker镜像中的ENTRYPOINT和CMD都将不会生效,Pod中的args将作为参数给command运行。
标签
key=value
- key:只能使用 字母 数字 _ - . (只能以字母数字开头,不能超过63给字符)
- value: 可以为空 只能使用 字母 数字开头
#显示标签
$ kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
jdk-94bcfc779-fs2cl / Running 8d pod-template-hash=,workload.user.cattle.io/workloadselector=deployment-default-jdk
mysql-5ffdf958d9-7qdnv / Running 3d pod-template-hash=,workload.user.cattle.io/workloadselector=deployment-default-mysql #-L 显示具有app标签的pod 并打印app标签下的值
$ kubectl get pods --all-namespaces -L app
NAMESPACE NAME READY STATUS RESTARTS AGE APP
cattle-alerting alertmanager-649c5fc4d7-4hp9q / Running 1d alertmanager
cattle-system cattle-cluster-agent-6d7c847588-f6cmt / Running 28d cattle-cluster-agent
cattle-system cattle-node-agent-9m2ls / Running 28d cattle-agent
cattle-system cattle-node-agent-9ngfh / Running 12d cattle-agent
cattle-system cattle-node-agent-j862c / Running 12d cattle-agent
cattle-system cattle-node-agent-s8s75 / Running 12d cattle-agent #-l 过滤那些pod具有app标签 $ kubectl get pods --all-namespaces -l app
NAMESPACE NAME READY STATUS RESTARTS AGE
cattle-alerting alertmanager-649c5fc4d7-4hp9q / Running 1d
cattle-system cattle-cluster-agent-6d7c847588-f6cmt / Running 28d
cattle-system cattle-node-agent-9m2ls / Running 28d
cattle-system cattle-node-agent-9ngfh / Running 12d #打标签
$ kubectl label pod jdk-94bcfc779-fs2cl app=dev #修改标签 --overwrite
$ kubectl label pod jdk-94bcfc779-fs2cl app=test --overwrite
标签选择器
- 等值关系标签选择器:=, == , != (kubectl get pods -l app=test,app=dev)
- 集合关系标签选择器: KEY in (v1,v2,v3), KEY notin (v1,v2,v3) !KEY (kubectl get pods -l "app in (test,dev)")
许多资源支持内嵌字段
- matchLabels: 直接给定建值
- matchExpressions: 基于给定的表达式来定义使用标签选择器,{key:"KEY",operator:"OPERATOR",values:[V1,V2,....]}
- 操作符: in notin:Values字段的值必须是非空列表 Exists NotExists: Values字段的值必须是空列表
节点选择器
nodeSelector <object>
元数据中的annotations 资源注解
annotations <object> 与labels不同的是,他不能挑选资源对象,仅用于为对象提供元数据
Kubernetes之Pod 控制器的更多相关文章
- kubernetes 的pod控制器
转载于网络 pod是kubernetes的最小单元,自主式创建的pod删除就没有了,但是通过资源控制器创建的pod如果删除还会重建.pod控制器就是用于实现代替我们去管理pod的中间层,并帮我们确 ...
- Kubernetes的pod控制器及ReplicaSet控制器类型的pod的定义
为什么需要Pod Kubernetes项目之所以这么做的原因: 因为Kubernetes是谷歌公司基于Borg项目做出来的,谷歌工程师发现,他们部署的应用往往存在这进程与进程组的关系.具体说呢,就是这 ...
- 06 . Kubernetes之Pod控制器详细介绍及应用
Pod API属性详解 Pod是k8s集群中的最小编排单位.将这个设计落实到API对象上,容器就成了Pod属性里一个普通的字段.那么到底哪些属性属于Pod对象,哪些属性属于容器的呢?先看下面的一段描述 ...
- kubernetes系列07—Pod控制器详解
本文收录在容器技术学习系列文章总目录 1.Pod控制器 1.1 介绍 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无 ...
- Kubernetes学习之路(十二)之Pod控制器--ReplicaSet、Deployment
一.Pod控制器及其功用 Pod控制器是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试 进行重启,当根据重启策略无效,则会重新新建pod的资源. pod控制器 ...
- (六)Kubernetes Pod控制器-ReplicaSet和Deployment和DaemonSet
Pod控制器相关知识 控制器的必要性 自主式Pod对象由调度器调度到目标工作节点后即由相应节点上的kubelet负责监控其容器的存活状态,容器主进程崩溃后,kubelet能够自动重启相应的容器.但对出 ...
- Kubernetes 学习8 Pod控制器
一.回顾 1.Pod是标准的kubernetes资源,因此其遵循为其资源清单配置定义的基本格式,包含:apiVersion,kind,metadata,spec,status(只读) 2.spec的内 ...
- Kubernetes 学习6 Pod控制器应用进阶
一.资源配置清单 1.自主式Pod资源 2.资源的清单格式,大多数清单格式都遵循如下条件: a.一级字段:apiVersion(group/version),kind,metadata(name,na ...
- 6、kubernetes资源清单之Pod控制器190714
一.Pod控制器的类别 ReplicationController:早期唯一的控制器,已废弃 ReplicaSet:控制Pod满足用户期望副本:标签选择器选择由自己管理的Pod副本:Pod资源模板完成 ...
随机推荐
- mysql安装和配置(windowns||centos)
windows10版本安装 1.获取mysql压缩包 https://dev.mysql.com/downloads/mysql/ 2.解压并配置文件my.ini .解压的文件路径 D:\Progra ...
- Python运算符之翩若惊鸿,婉若游龙
python中的运算符算术运算符:主要用于两个对象算数计算(加减乘除等运算)比较运算符:用于两个对象比较(判断是否相等.大于等运算)赋值运算符:用于对象的赋值,将运算符右边的值(或计算结果)赋给运算符 ...
- awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一
awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...
- GitHub下载克隆clone指定的分支tag代码
需求描述: 这边有很多tag分支版本的代码,我想克隆下载指定版本到我服务器上面 例如:我想下载tag:1.4.1的代码 解决方法: 命令:git clone --branch [tags标签] [gi ...
- docker容器日志收集方案(方案四,目前使用的方案)
先看数据流图,然后一一给大家解释 这个方案是将日志直接从应用代码中将日志输出到redis中(注意,是应用直接连接redis进行日志输出),redis充当一个缓存中间件有一定的缓存能力,不过有限,因 ...
- ZooInspector 连接不到 Zookeeper 的解决方法
Zookeeper正常启动后,在使用 ZooInspector 连接 Zookeeper 时出现了连接不上的问题. [root@localhost bin]# zkServer.sh start Zo ...
- pyinstaller 打包selenium脚本 取消cmd
更改源代码 找到文件(selenium->webdriver->common->service.py) 添加一个参数
- 理解mysql执行多表联合查询
阅读目录 一:inner join(内连接) 二:left join(左连接) 三:right join(右连接) 四:cross join(交叉连接) 五:union操作 六:node+mysql ...
- iOS开发基础-九宫格坐标(3)之Xib
延续iOS开发基础-九宫格坐标(2)的内容,对其进行部分修改. 本部分采用 Xib 文件来创建用于显示图片的 UIView 对象. 一.简单介绍 Xib 和 storyboard 的比较: 1) X ...
- H5 百度一下,你就知道
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...