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资源模板完成 ...
随机推荐
- codeforces/contest/803/problem C
题目:C. Maximal GCD 题意:输入n,k.将n拆成k个数的序列,使得这k个数的gcd最大.(且序列严格递增).1 ≤ n, k ≤ 1010 . 分析:假设k个数的gcd为d,则一定有d| ...
- 关于Java中IO流的练习
练习一:统计一个文件calcCharNum.txt中字母‘A’和'a'出现的总次数. package com.test; import java.io.File; import java.io.Fil ...
- mysql面试题
01. 列举常见的关系型数据库和非关系型都有那些? 1.关系型数据库通过外键关联来建立表与表之间的关系,---------常见的有:SQLite.Oracle.mysql 2.非关系型数据库通常指数据 ...
- window.open模拟表单POST提交
解决地址栏长度限制,隐藏参数,不在地址栏显示 项目 excel 导出中用到 将form的target设置成和open的name参数一样的值,通过浏览器自动识别实现了将内容post到新窗口中 var u ...
- #021 Java复习第一天
上学期在慧河工作室学习简单过java到面向对象就停止了 现在有事情又要用到java发现全忘了..... 快速复习一下 网课PPT 计算机: 硬件 + 软件 主要硬件: cpu :cpu是一个计算机的运 ...
- perf + Flame Graph火焰图分析程序性能
1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...
- WPFの命中测试
概述: WPF中的Canvas是常用的一个绘图控件,可以方便地在Canvas中添加我们需要处理的各种元素如:图片.文字等.但Canvas中元素增加到一定数量,并且有重合的时候,我们如何通过在Canv ...
- w3m 使用总结
安装 sudo apt install w3m终端 w3m www.baidu.com 即可打开w3m是个开放源代码的命令行下面的网页浏览器.一般的linux系统都会自带这个工具,可以通过它在命令行下 ...
- 【Windows】+ win10 通过KMS激活
win10激活到期 通过KMS再次激活(亲测有效):http://www.xitongcheng.com/jiaocheng/win10_article_44435.html
- SkylineGlobe TerraExplorer for Web 7.1.0版本 接口示例
在SkylineGlobe TerraExplorer for Web 7.1.0版本(俗称H5免插件版本)中,如何使用SGWorld接口的三维视域分析方法呢? 请参考下面的示例: 通过下面的代码大家 ...