k8s资源清单创建pod
资源:对象
service pod deployment
workload:pod,ReplicaSet,Deployment,statefulset,DaemonSet,Job,Crontabjob,...
服务发现和负载均衡:service ,Ingress,....
配置与存储:Volumn存储卷 ,CSI存储接口
ConfigMap,Secret,
DownwardAPI
集群级资源:namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding,
元数据型资源
HPA,PodTemplate,LimitRange
kubectl get pod myapp-84cd4b7f95-h47cj -o yaml
yml文件查看pod详细的配置清单
创建资源的方法:
apiserver仅接收JSON格式的资源定义;
yaml格式提供配置清单,apiserver可自动转为json格式,而后在提交
kubectl api-versions
大部分资源的配置清单:
apiVerison:group/version,
kind:资源类别
metadata:元数据
name
namespace
labels
annotations 资源注解
每个资源的引用PATH
/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
spec:规格 期望的状态 disired state
spec.containers
- name <string>
image <string>
imagePullPolicy <string>
Always,Never,IfNotPresent
总是去仓库下载 不下载 不存在就去下载,存在就直接使用
修改镜像中默认的运用:
kubectl explain pods.spec.containers
command ,args
https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
标签labels
kubectl get pods --show-labels
key=value(小于63个字符)
key:字母,数字,”-_”
value:可以为空
kubectl get pods -l app --show-labels 找出含有app标签的pod
kubectl get pods -L app,run --show-labels -o wide 匹配字段查询
打标签
kubectl label –help
kubectl label pods pod-demo release=canary
类型 资源名 标签名=canary
kubectl get pods -l app --show-labels 查看是否打上标签
覆盖修改标签
kubectl label pods pod-demo release=stable –overwrite
kubectl get pods -l app,release --show-labels 既有app也有release标签
标签选择器
等值:=,==,!=
kubectl get pods -l release=stable --show-labels
kubectl label pods nginx-7bb7cd8db5-7dn9r release=canary
kubectl get pods -l release
kubectl get pods -l release=canary
kubectl get pods -l release,app
kubectl get pods -l release=stable,app=myapp
kubectl get pods -l release!=canary --show-labels
集合关系:key in (values1,value2…), key not in (values1,value2…),key,!key
kubectl get pods -l "release in (canary,beta,alpha)" --show-labels
kubectl get pods -l "release notin (canary,beta,alpha)" --show-labels
许多资源支持内嵌字段定义其使用标签选择器:
matchLabels:直接给定键值,相当于=
matchExpressions:基于给定的表达式来定义使用标签选择器,{key:”KEY”,operator:”OPERATOR”,values:[VAL1,VAL2…]}大写字母表示替换
operator操作符:In ,NotIn values字段必须为非空列表
Exists,NotExists values字段必须为空列表
各种对象都能打标签,不仅限于pod,比如node
kubectl get nodes --show-labels
kubectl label nodes node02 disktype=ssd 对node02打标签
kubectl explain pods.spec
nodeSelector <map[string]string> 节点标签选择器
kubectl label nodes node01 disktype=hd
vim pod-demo.yaml
containers:
…
nodeSelector:
disktype: hd
kubectl delete -f pod-demo.yaml
kubectl create -f pod-demo.yaml 再次创建会运行在node01上
kubectl describe pods pod-demo
nodeName <string> 指定运行在哪个节点上
annotations:资源注解
与label不同的地方在于,它不能用于挑选资源对象,仅用于为对象提供”元数据”,
vim pod-demo.yaml
metadata:
…
annotations:
work in node02: "disk is ssd"
kubectl delete -f pod-demo.yaml
kubectl create -f pod-demo.yaml
kubectl describe pods pod-demo
Annotations: work_in_node02: disk is ssd
status:当前状态,current state,本字段由kubernetes集群维护;用户不能定义
kubectl explain pods 查询pods怎么定义
kubectl explain pods.metadata 查询pods的metadata怎么定义
kubectl explain pods.spec
kubectl explain pods.spec.containers
kubectl explain pods.spec.containers.livenessProbe
例如:自定义一个pod资源
vim pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
- name: busybox
image: busybox:latest
imagePullPolicy: IfNotPresent
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
注释:
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
相当于 spec:{containers:['name:myapp'],image:"ikubernetes/myapp:v1"}
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
相当于 command:["/bin/sh","-c","sleep 3600"]
kubectl create -f pod-demo.yaml 基于yaml清单文件创建pod资源
从文件加载创建资源
kubectl get pods 再查看一下创建的pod
kubectl describe pods pod-demo 查看创建的资源的描述信息
查看容器日志
kubectl logs pod-demo myapp
pod名 pod里面的容器名
进入容器
kubectl exec -it pod-demo -c myapp -- /bin/sh
输入和终端 pod名 -c指定容器名 --执行的命令
kubectl delete -f pod-demo.yaml 删除基于资源清单yaml文件定义的资源
k8s资源清单创建pod的更多相关文章
- Kubernetes中资源清单与Pod的生命周期(二)
一.资源清单 1,定义: 在k8s中一般使用yaml格式的文件来创建符合我们预期的资源,这样的yaml被称为资源清单. 使用资源清单创建Pod: kubectl apply -f nginx.yaml ...
- 【04】Kubernets:资源清单(pod)
写在前面的话 前面我们提到过,纯手敲 K8S 名称管理 K8S 服务只是作为我们了解 K8S 的一种方案,而我们最终管理 K8S 的方法还是通过接下来的资源清单的方式进行管理. 所以从本章节开始,将会 ...
- k8s资源清单定义入门
1.资源分类 a.workload型资源:service.pod.deployment.ReplicaSet.StatefulSet.Job.Cronjob; b.服务发现及服务均衡资源型资源:Ser ...
- k8s资源清单基础
资源清单介绍 创建资源的方法 apiserver仅接收JSON格式的资源定义 yaml格式提供配置清单 apiserver可自动把yaml转换成json格式数据 资源清单五个一级字段 1.ap ...
- 2.k8s资源清单
一.常见资源对象 常见的资源对象:(包括但不仅限于) l Workload: Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob ...
- 1.k8s.资源清单
#k8s常用资源 工作负载:Pod,rs(ReplicasSet),deploy(Deployment),sts(StatefulSet),ds(DaemonSet),Job,Cronjob 服务发现 ...
- kubernetes资源清单之pod
什么是pod? Pod是一组一个或多个容器(例如Docker容器),具有共享的存储/网络,以及有关如何运行这些容器的规范. Pod的内容始终位于同一地点,并在同一时间安排,并在共享上下文中运行. Po ...
- 6、kubernetes资源清单之Pod控制器190714
一.Pod控制器的类别 ReplicationController:早期唯一的控制器,已废弃 ReplicaSet:控制Pod满足用户期望副本:标签选择器选择由自己管理的Pod副本:Pod资源模板完成 ...
- 12.深入k8s:kubelet创建pod流程源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 在上一篇中,我们知道在kubelet中,工作核心就是围绕着整个syn ...
- k8s资源清单
资源清单就是k8s当中用来定义pod的文件,语法格式遵循yaml语法,在yaml当中可以定义控制器类型,元数据,容器端口号等等等....,也可以针对于清单对pod进行删除等操作. 我们可以用kubec ...
随机推荐
- Linux目录管理命令
1. pwd :显示当前所在目录的路径 1.1 语法格式 pwd #直接按回车键 1.2 实践案例 案例:查看当前所在目录路径 [root@yyds ~]# pwd /root --->显示的是 ...
- 还在手动更改SpringBoot的环境yml配置文件?老鸟带你可视化配置
问题说明: 在SpringBoot开发时.SpringBoot的特性:'约定大于配置',我们只需要在**application.yml **配置当前的环境变量属与那个文件 比如测试环境 'applic ...
- 【效能提升】上线前漏了SQL脚本,漏加上某个配置项了?
背景 一个版本从开始开发到上线,可能经历10多天,甚至更久. 由于这个过程的时间较长,难免出现某些需要执行的SQL脚本.需要配置的配置项,到了上线前,却被遗漏了,最后导致出现线上问题才发现. 我们团队 ...
- Eclipse各历史版本所需的最低JDK版本统计
Eclipse 版本名称 Version 发布时间 最低支持的jdk Kepler 4.3 2013.06 Java 6 Luna 4.4 2014.06.25 Java 7 Mars 4.5 201 ...
- QStringListModel的使用
主要为 :添加.插入.修改.删除.清空等操作 例子:本例子中QListView 没有做任何处理,只是拖放至ui文件,设置了布局 MainWindow.h #ifndef MAINWINDOW_H #d ...
- 附039.Kubernetes_v1.32.2高可用部署架构二
部署组件 该 Kubernetes 部署过程中,对于部署环节,涉及多个组件,主要有 kubeadm .kubelet .kubectl. kubeadm介绍 Kubeadm 为构建 Kubernete ...
- day2-变量与数据类型
变量 概念:程序的基本组成单位 定义: 指定变量类型 根据值自行判断变量类型(类型推导) 省略var,定义赋值 var i int var i = 10 i, j := 20, 10 数据基本类型 基 ...
- C系统级编程-复习
数组对象类型 Array of Type,它是多个相同对象类型的一维派生类型,包含两要素:元素个数,元素的对象类型 所谓多维数组,不过是元素的迭代衍生,本质还是一维的 声明 对象标识的名称 对象类型 ...
- 【MIPS】经典指令块集锦
Directives声明变量值存储 容易将数据段地址和地址上的内容搞混 .data fibs: .space 48 # allocate 12 * 4 = 48 Byte memory, store ...
- STM32 学习方法
前言 学习知识要掌握有效的学习方法,学习技术也是一样,本篇分享关于我学习 STM32 后总结的学习方法. 推荐的学习方法 系统学习 在网上购买一款开发板,使用开发板+开发板配套视频教程+开发板配套源码 ...