资源:对象

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的更多相关文章

  1. Kubernetes中资源清单与Pod的生命周期(二)

    一.资源清单 1,定义: 在k8s中一般使用yaml格式的文件来创建符合我们预期的资源,这样的yaml被称为资源清单. 使用资源清单创建Pod: kubectl apply -f nginx.yaml ...

  2. 【04】Kubernets:资源清单(pod)

    写在前面的话 前面我们提到过,纯手敲 K8S 名称管理 K8S 服务只是作为我们了解 K8S 的一种方案,而我们最终管理 K8S 的方法还是通过接下来的资源清单的方式进行管理. 所以从本章节开始,将会 ...

  3. k8s资源清单定义入门

    1.资源分类 a.workload型资源:service.pod.deployment.ReplicaSet.StatefulSet.Job.Cronjob; b.服务发现及服务均衡资源型资源:Ser ...

  4. k8s资源清单基础

    资源清单介绍 创建资源的方法  apiserver仅接收JSON格式的资源定义  yaml格式提供配置清单 apiserver可自动把yaml转换成json格式数据 资源清单五个一级字段   1.ap ...

  5. 2.k8s资源清单

    一.常见资源对象 常见的资源对象:(包括但不仅限于) l  Workload: Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob ...

  6. 1.k8s.资源清单

    #k8s常用资源 工作负载:Pod,rs(ReplicasSet),deploy(Deployment),sts(StatefulSet),ds(DaemonSet),Job,Cronjob 服务发现 ...

  7. kubernetes资源清单之pod

    什么是pod? Pod是一组一个或多个容器(例如Docker容器),具有共享的存储/网络,以及有关如何运行这些容器的规范. Pod的内容始终位于同一地点,并在同一时间安排,并在共享上下文中运行. Po ...

  8. 6、kubernetes资源清单之Pod控制器190714

    一.Pod控制器的类别 ReplicationController:早期唯一的控制器,已废弃 ReplicaSet:控制Pod满足用户期望副本:标签选择器选择由自己管理的Pod副本:Pod资源模板完成 ...

  9. 12.深入k8s:kubelet创建pod流程源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 在上一篇中,我们知道在kubelet中,工作核心就是围绕着整个syn ...

  10. k8s资源清单

    资源清单就是k8s当中用来定义pod的文件,语法格式遵循yaml语法,在yaml当中可以定义控制器类型,元数据,容器端口号等等等....,也可以针对于清单对pod进行删除等操作. 我们可以用kubec ...

随机推荐

  1. linux下安装 elasticsearch

    一.基础环境 操作系统环境:Red Hat Enterprise Linux Server release 6.4 (Santiago) ES版本:elasticsearch-7.8.0-linux- ...

  2. docker - [08] Portainer可视化面板安装

    Docker图形化界面管理工具 一.运行容器 同时下载和使用镜像运行容器 docker run -d -p 8088:9000 \ --restart=always -v /var/run/docke ...

  3. 【BUUCTF】HardSQL

    [BUUCTF]HardSQL 题目来源 收录于:BUUCTF 极客大挑战 2019 题目描述 一道纯粹的SQL注入题 尝试进行注入,发现对以下字符进行了过滤: = %20(空格) %09 %0a % ...

  4. Go1.24版本终于来了!各位开发者,准备好迎接这些激动人心的新功能了吗?让我们一起来探讨下Go1.24中有哪些精彩的亮点?

    前言 Gopher们,Go 1.24.0 正式发布了!与 Go 1.23.0 相比,这个版本带来了众多改进.让我们一同看看 Go 1.24.0 都有哪些新变化吧! 在 Windows 下,请在 htt ...

  5. pandas 判断列是否包含某个字符串

    亲测第二种好用 in 语句 不包含使用not in food = df['日期'].values.tolist() if '休息' in food: print(food) if df['共计小时'] ...

  6. Web前端入门第1问:英语是否很重要?有哪些前置条件?

    HELLO,这里是大熊学习前端开发的入门笔记. 本系列笔记基于 windows 系统. 在入门之前,是否有这样的疑问: 程序员的英语是否很牛?毕竟程序员的代码像天书一样,比如这样: 答案是否定的. 英 ...

  7. Qt关于使用QSqlQuary::size()这个函数值返回是-1

    QSqlQuary::size( ) 今天做项目的时候,用Qt连接Oracle数据库,前面都是连接成功,但是用SQL语句去操作数据库的时候,发现老是读不到内容,卡了好久. QSqlQuery Rule ...

  8. CORS 跨域请求一种解决方案

    平常工作难遇到这类问题, 一般搭建新系统或搭建系统二时需要复用系统一一些前后端能力, 可能会遇到跨域拦截问题. 这里提供一种基于服务器解决方案. 更多其他方案, 详细细节可自行查阅更多资料, 写一些前 ...

  9. mongodb关机重启

    正确关闭 mongodb 查看 mongodb 进程 ps -ef | grep mongodb # 或者 ps -aux | grep mongodb 杀掉 mongodb 进程(不推荐) kill ...

  10. 队列的内置模块(deque)--双向队列

    博客地址:https://www.cnblogs.com/zylyehuo/ # -*- coding: utf-8 -*- from collections import deque q = deq ...