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不提供commandargs使用Container,则使用Docker镜像中的cmd或者ENTRYPOINT。
  • 如果Pod提供command但不提供args,则仅使用提供 command的。将忽略Docker镜像中定义EntryPoint和Cmd。
  • 如果Pod中仅提供args,则args将作为参数提供给Docker镜像中EntryPoint
  • 如果提供了commandargs,则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      1/1       Running   0          8d        pod-template-hash=506797335,workload.user.cattle.io/workloadselector=deployment-default-jdk
mysql-5ffdf958d9-7qdnv   1/1       Running   1          3d        pod-template-hash=1998951485,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           2/2       Running       0          1d        alertmanager
cattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running       2          28d       cattle-cluster-agent
cattle-system     cattle-node-agent-9m2ls                 1/1       Running       2          28d       cattle-agent
cattle-system     cattle-node-agent-9ngfh                 1/1       Running       0          12d       cattle-agent
cattle-system     cattle-node-agent-j862c                 1/1       Running       1          12d       cattle-agent
cattle-system     cattle-node-agent-s8s75                 1/1       Running       1          12d       cattle-agent

#-l 过滤那些pod具有app标签

$ kubectl get pods --all-namespaces  -l app
NAMESPACE         NAME                                    READY     STATUS    RESTARTS   AGE
cattle-alerting   alertmanager-649c5fc4d7-4hp9q           2/2       Running   0          1d
cattle-system     cattle-cluster-agent-6d7c847588-f6cmt   1/1       Running   2          28d
cattle-system     cattle-node-agent-9m2ls                 1/1       Running   2          28d
cattle-system     cattle-node-agent-9ngfh                 1/1       Running   0          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不同的是,他不能挑选资源对象,仅用于为对象提供元数据

原文地址:https://www.cnblogs.com/xzkzzz/p/9519489.html

时间: 2024-08-01 08:21:28

Kubernetes之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

Kubernetes之Pod控制器应用进阶

目录 Kubernetes之Pod控制器应用进阶 Pod控制器下spec常用字段 标签(Labels)和标签选择器(LabelSelector) 标签 标签选择器 Kubernetes之Pod控制器应用进阶 Pod控制器下spec常用字段 #containers [[email protected] ~]# kubectl explain pods.spec.containers. name <string> -required- #容器名,必选字段 image <string>

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 控制器

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

Kubernetes之标签与Pod控制器详解

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

Kubernetes系列之Kubernetes Pod控制器

#一.常见Pod控制器及含义 ###1. ReplicaSets ReplicaSet是下一代复本控制器.ReplicaSet和 Replication Controller之间的唯一区别是现在的选择器支持.Replication Controller只支持基于等式的selector(env=dev或environment!=qa),但ReplicaSet还支持新的,基于集合的selector(version in (v1.0, v2.0)或env notin (dev, qa)).大多数kub

Kubernetes之Pod的生命周期

目录 Kubernetes之Pod的生命周期 理解Pod Pod内如何管理多个容器 Pod的使用 其他替代选择 Pod的持久性 Pod的终止 Init容器 Pause容器 Pod的生命周期 Pod的phase Pod的状态 容器探针 存活性探测 livenessProbe 就绪性探测 readnessProbe livenessProbe和readinessProbe使用场景 lifecycle Kubernetes之Pod的生命周期 理解Pod Pod是kubernetes中你可以创建和部署的

Kubernetes之StatefulSet控制器

目录 Kubernetes之StatefulSet控制器 简介 StatefulSet使用 滚动更新 扩展伸缩 更新策略和版本升级 Kubernetes之StatefulSet控制器 简介 StatefulSet 作为 Controller 为 Pod 提供唯?的标识. 它可以保证部署和 scale 的顺序. StatefulSet是为了解决有状态服务的问题(对应Deployments和ReplicaSets是为?状态服务?设计) , 其应?场景包括: 稳定的持久化存储, 即Pod重新调度后还是