kubernetes(k8s)之编写资源清单(代码片段)

Tuki_a Tuki_a     2022-12-13     309

关键词:

一级目录

什么叫资源清单

k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象。
在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单。

好处:怎么创建的怎么回收

如何创建资源

apiserver 仅接受JSON格式的资源定义,yaml格式提供配置清单,apiserver 可自动将其转为JSON格式,而后再提交。

编写资源清单模板(格式)

我们可以先以run命令的形式运行一个pod,然后在查看时指定-o yaml参数即可看到yaml格式的资源清单。

首先要指定api,指定使用的是哪种api资源,可以通过指令kubectl api-versions查看k8s提供了哪些api资源。这些不是固定的,可以通过插件去扩充。
官方文档地址:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/

然后按如下格式编写即可

apiVersion: group/version  //指明api资源属于哪个群组和版本,同一个组可以有多个版本

kind: 		//标记创建的资源类型,k8s主要支持资源类别:Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob
    
metadata:	//元数据
        name:	//对象名称
        namespace:	//对象属于哪个命名空间
        labels:	//指定资源标签,标签是一种键值数据

spec: 		//定义目标资源的期望状态

kubectl explain pod命令可以查看帮助,关于怎么编写你想要的资源清单的帮助

资源清单参数说明

可以用命令的方式查看参数说明
例:kubectl explain pod.spec.containers.tty





自主式Pod资源清单

编写yaml文件,内容以及解释如下

[root@server2 pod]# vim pod.yaml
apiVersion: v1		#属于v1版本
kind: Pod			#资源类型为pod
metadata:
  name: pod-example	#对象名称
spec:
  containers:		#下边并列了两个容器,一整个pod里运行的一服务包含功能myapp和busybox
  - name: myapp		#容器名
    image: myapp:v1	#镜像版本
    imagePullPolicy: IfNotPresent	#镜像拉取策略,未指定直,默认是always
  - name: busybox	
    image: busybox:v1
    tty: true		#因为busybox是一个交互式服务,所以需要给一个终端,tty默认是false,不给true会导致启动失败
    stdin: true		#和tty需要一起开启,默认也是false,接受在终端输入的内容暂存缓存

应用文件创建pod,正常运行,两个容器处于ready状态

将busybox调到前台运行成功

删除创建的pod(指定文件源,怎么创建的怎么删除),再给文件写点东西进去,重新应用

修改后的文件内容如下:
apiVersion: v1
kind: Pod
metadata:
  name: pod-example
spec:
  hostNetwork: true		#共享使用宿主机的网络
  nodeName: server4		#指定部署节点为server4
  containers:
  - name: myapp
    image: myapp:v1
    imagePullPolicy: IfNotPresent
    resources:
      requests:
        cpu: "100m"		#启动时至少用100m的cpu
        memory: "50Mi"	#启动时至少用50mi的内存
      limits:
        cpu: "200m"		#启动时至多用200mcpu
        memory: "100Mi"	#启动时至多用200m内存

重新应用查看详细描述,可以看到使用的节点是server4,共享server4的网络


我们设置的资源限制和请求的直也可以看到

kubernetes之资源清单定义(代码片段)

目录Kubernetes之资源清单定义常用资源利用配置清单定义自主式Pod资源Kubernetes之资源清单定义常用资源工作负载型Pod,ReplicaSet,StatefulSet,DaemonSet,Job,Cronjob服务发现及均衡Sevice,Ingress,...配置与存储Volume,CSI,ConfigMap,Secret,DownwardAPI集群级... 查看详情

云原生之kubernetes实战k8s集群核心资源对象之pod

【云原生之kubernetes实战】k8s集群核心资源对象之Pod一、Pod介绍1.pod简介2.pod的特点3.pod在k8s的应用4.k8s中的业务访问请求二、Pod的yaml文件清单中详细解释三、检查本地k8s集群状态1.检查系统pod状态2.检查工作节点状态四、使用kubectl... 查看详情

k8s之资源清单定义基础(代码片段)

第1章创建资源的方法1.1用命令的方式创建创建一个pod为例kubectlcreatepodapp1.2资源清单定义注意:apiserver只接受JSON格式的格式定义的资源,yaml写的配置清单spiserver会自动将其转化为JSON格式然后再次进行提交为什么我们写资源清单方... 查看详情

kubernetes(k8s)之容器资源限制(代码片段)

...源限制ResourceQuota为namespace设置资源配额资源限制的实现Kubernetes对资源的限制实际上是通过cgroup来控制的,cgroup是容器的一组用来控制内核如何运行进程的相关属性集合。针对内存、CPU和各种设备都有对 查看详情

kubernetes(k8s)资源管理/清单配置基础

控制平面:API-Service:运行于6443端口接入master节点地址的6443端口进行交互用户认证,双向认证SchedulerController工作平面:kube-proxy每个节点都有 核心资源:PodPodControllerdeploymentService 和解循环(ReconciliationLoop)客户端向APIServer... 查看详情

运维实战kubernetes(k8s)之pod的建立(代码片段)

运维实战kubernetes(k8s)之pod的建立1.Pod管理2.资源清单3.Pod生命周期4.控制器1.Pod管理Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个... 查看详情

k8s学习-资源清单(代码片段)

4、kubernetes使用4.1、资源清单api文档、api描述4.1.2、说明必须存在的属性主要的对象额外的参数项例子vimmy-app.ymlapiVersion:v1#kubectlapi-versions查看支持的版本#类型,如:Pod|ReplicationController|Deployment|Service|Ingresskind:Podmetadata:name:my-app 查看详情

kubernetes(k8s)之资源监控(代码片段)

资源监控Metrics-ServerMetrics-Server演示环境Metrics-Server部署Metrics-ServerMetrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。容器相关的Metrics主要来自于kubelet内置的cAdvisor服务,有了Metrics-Server之后,用户就可... 查看详情

云原生之kubernetes实战k8s集群下的daemonset高级资源对象

【云原生之kubernetes实战】k8s集群下的DaemonSet高级资源对象一、DaemonSet资源对象介绍1.DaemonSet简介2.DaemonSet使用场景二、检查本地k8s集群状态1.检查系统pod状态2.查看工作节点状态三、创建一个DaemonSet1.编写daemonset.yaml2.应用daemonset.ya... 查看详情

再战k8s:kubernetes集群yaml文件(代码片段)

文章目录yaml语法资源清单必须存在的属性spec主要对象额外的参数举个小栗子创建一个namespace创建一个Podyaml语法觉得Yaml怪,那就来我这儿,对标Python让我快速上手资源清单在k8s中,一般使用YAML格式的文件来创建符合... 查看详情

k8s四资源及资源清单(代码片段)

...集群级资源元数据型资源资源清单常用字段解释说明尝试编写Pod模板创建第一个Pod总结写在后面前言K8S中的资源K8S中所有的内容都抽象为资源࿰ 查看详情

k8s四资源及资源清单(代码片段)

...集群级资源元数据型资源资源清单常用字段解释说明尝试编写Pod模板创建第一个Pod总结写在后面前言K8S中的资源K8S中所有的内容都抽象为资源࿰ 查看详情

kubernetes(k8s)之hpa(代码片段)

HorizontalPodAutoscalerHPA简介HPA伸缩过程HPA进行伸缩算法演示环境单条资源限制多条资源限制HPA简介HorizontalPodAutoscaler可以根据CPU利用率自动扩缩ReplicationController、Deployment、ReplicaSet或StatefulSet中的Pod数量(也可以基于其他应用程... 查看详情

kubernetes之k8s核心原理--第一篇(代码片段)

...,好吧,只能通过两篇文章向大家介绍K8s核心原理。一、KubernetesAPIServer原理分析1.kubernetesAPIServer介绍  kubernetesAPIserver的和核心功能是提供了kubernetes各类资源对象(pod、RC、service等)的增、删、改、查以及watch等HTTP 查看详情

基于kubernetes集群部署elasticsearch集群(代码片段)

在k8s中部署elasticsearch集群文章目录在k8s中部署elasticsearch集群1.部署分析2.准备镜像并推送至Harbor仓库3.创建StorageClass动态PV资源4.编写es集群configmap资源5.编写es集群statfulset资源6.编写es集群svc资源7.创建所有资源8.查看资源的状态8.1... 查看详情

kubernetes(k8s)之部署让k8s图形化的dashboard(代码片段)

...可视化的Web界面来查看当前集群的各种信息。用户可以用KubernetesDashboard部署容器化的应用、监控应用的状态、执行故障排查任务以及管理Kubernetes各种资源。网址:https://github.com/kubernetes/dashboard部 查看详情

二进制部署k8s集群进阶使用之第3节kubectl-声明式资源管理(代码片段)

三、声明式资源管理声明式资源管理方法:声明式资源管理方法依赖于一资源配置清单(yaml/json)文件对资源进行管理对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到K8s集群里语法格式:kubectlcr... 查看详情

kubernetes(k8s)之secret私密凭据(代码片段)

Secret什么是SecretSecret的类型Secret使用方式演示环境ServiceAccount从文件中创建Secret编写一个secret对象将Secret挂载到Volume中向指定路径映射secret密钥将Secret设置为环境变量创建registry的认证信息什么是SecretSecret的主要作用是保管私密... 查看详情