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资源模板完成 ...
随机推荐
- MyBatis学习总结_Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- MySql 学习之路-高级1
Mysql自学之路-高级1 目录: 1.CREATE DATABASE 创建数据库 2.CREATE TABLE 创建数据表 3.INSERT INTO SELECT 把一个表中的数据拷贝到另一个表中 ...
- Linux Collection:系统信息和配置
PAS Linux系统配置相关文件 /etc 目录中是系统和各类软件的配置文件 /var/log 系统日志 /proc 系统运行信息 PAS /boot空间不足 查看内核 dpkg --get-sel ...
- Linux Mysql 每天定时备份
1.创建脚本 dbback.sh,内容如下: #!/bin/bash mysqldump -uroot -p123456 hexin>/work/db_back/hexin_$(date +%Y ...
- Git命令行管理代码、安装及使用
出处:https://www.cnblogs.com/ximiaomiao/p/7140456.html Git安装和使用 目的:通过Git管理github托管项目代码 一.下载安装Git 1 ...
- 距离放弃python又近了一大步,而然只是第四天
今天是周末后的第一天,周末四处浪浪浪,所以在周一的时候就要狠狠的复习之前的东西了,之后从第一天的计算机基础开始复习,具体内容请翻阅前三篇随笔,主要是要仔细看看,怕学了后面的忘了前面的,今天引进的第一个 ...
- Python学习--Python运算符
什么是运算符? 举个简单的例子 4 + 5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 算数运算符 比较(关系)运算 ...
- SpringBoot整合RabbitMQ-服务安装
本系列是学习SpringBoot整合RabbitMQ的练手,包含服务安装,RabbitMQ整合SpringBoot2.x,消息可靠性投递实现等三篇博客. 学习路径:https://www.imooc. ...
- openstack搭建之-keystone配置(8)
一. Base Node配置 mysql -uroot -proot CREATE DATABASE keystone GRANT ALL PRIVILEGES ON keystone.* to 'k ...
- POJ1094 Sorting It All Out LUOGU 排序
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40012 Accepted ...