哪个网站做任务可以赚钱,电子类 购物网站,什么是优化,网络推广优化方法一、k8s中的资源
什么是资源清单 我们跟kubernetes集群进行交互的时候#xff0c;我们需要给K8S集群传输数据#xff0c;传输信息#xff0c;K8S才能按照我们的要求来运行#xff0c;这个传输的文件#xff0c;基本上都会通过资源清单进行传递。资源清单是我们跟集群进行… 一、k8s中的资源
什么是资源清单 我们跟kubernetes集群进行交互的时候我们需要给K8S集群传输数据传输信息K8S才能按照我们的要求来运行这个传输的文件基本上都会通过资源清单进行传递。资源清单是我们跟集群进行有效交流的一个机制或一个格式。 1.什么是资源 K8s 中所有的内容都抽象为资源 资源实例化之后叫做对象 资源就是我们可以操作的一个又一个的类型一个又一个特殊的内容的集合。 也就是说tomcat这个pod创建出来时我们给他传递参数他在创建的过程中这个过程就叫实例化。过程执行以后产生的pod这个pod就叫对象。 一个资源可以抽象出多个对象但是一个对象只能符合一个资源的特性。 2.k8s中存在哪些资源
1名称空间级别 工作负载型资源 Pod、ReplicaSet、Deployment ... 服务发现及负载均衡型资源: Service、Ingress... #service是四层负载均衡ingress是七层负载均衡 配置与存储型资源Volume卷、CSI容器存储接口 ... 特殊类型的存储卷ConfigMap存配置文件的、Secre存密钥类型的 ... #隔离单位与linux内核中的空间含义不一样别搞混了只是k8s集群中的一个逻辑的分类而已 #名称空间只是一个逻辑性的隔离并不是真正的隔离跟docker里的和内核空间的是两回事 2集群级资源 Namespace名称空间、Node节点、ClusterRole集群角色、ClusterRoleBinding集群角色绑定 #集群级别的资源是不需要指定级别空间的 3元数据型资源 HPA资源扩容与容缩、PodTemplatepod模板、LimitRange资源限制 #不能独立存在必须要有依附 #HPA资源扩容与容缩可以根据当前pod资源使用量情况进行资源扩容与缩容 # PodTemplatepod模板必须依附在控制器里 # LimitRange资源限制必须依附在对应的pod上 二、资源清单
1.什么是资源清单 在 k8s 中一般使用 yaml 格式的文件来创建符合我们预期期望的 pod 这样的 yaml 文件我们一般称为资源清单。 资源实例化成对象描绘中间这个过程这个文件都叫资源清单。 资源清单不一定都是yaml模式也可以是json格式。
kubectl get pod#获取pod资源对象kubectl get pod pod名 -o yaml#以yaml格式输出pod的信息kubectl get pod pod名 -o json#以json格式输出pod信息
2.资源清单的格式
1资源清单格式 apiVersion: group/apiversion # 如果没有给定 group 名称那么默认为 core可以使用 kubectl api-versions # 获取当前 k8s 版本上所有的 apiVersion 版本信息( 每个版本可能不同 ) kind: #资源类别标记创建的资源类型k8s主要支持以下资源类别 #Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、Cronjob metadata: #资源元数据 name #指定当前对象的名称其所属的名称空间的同一类型中必须唯一 namespace #指定当前对象隶属的名称空间默认值为default lables #设定用于标识当前对象的标签键值数据常被用做挑选条件 annotations #非标识键值数据用来作为挑选条件用于labels的补充。 主要目的是方便用户阅读查找 spec: # 期望的状态disired state官方文件单节点运行121个pod是一个比较固定的值。 status # 当前状态本字段有 Kubernetes 自身维护用户不能去定义。 !--配置清单主要有五个一级字段其中status用户不能定义由k8s自身维护-- apiVersion版本实验
kubectl api-versions #查看组和版本有些组名相同但是版本号不同#最下方有个单独的v1版这是默认的核心组v1版。#所谓核心组可以理解为项目刚初始的时候就加入公司创建那些基本功能的小组。#不同的k8s的版本组和版本还不一样。kubectl explain pod #查看创建pod容器的版本信息。#查询到pod容器的版本是v1版在apiVersion:v1这么写即可 kubectl explain deployment#查询deployment的版本 kubectl get pod pod名 -o yaml #以yaml文件输出pod的信息kubectl explain pod.spec.containers.image#不知道image怎么写的时候查看帮助信息kubectl explain pod.spec.containers#查看containers下面应该写哪些东西
2资源清单的常用命令
1获取 apiversion 版本信息
[rootk8s-master01 ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
......(以下省略)2获取资源的 apiVersion 版本信息
[rootk8s-master01 ~]# kubectl explain pod
KIND: Pod
VERSION: v1
.....(以下省略)[rootk8s-master01 ~]# kubectl explain Ingress
KIND: Ingress
VERSION: extensions/v1beta13获取字段设置帮助文档
[rootk8s-master01 ~]# kubectl explain pod
KIND: Pod
VERSION: v1DESCRIPTION:Pod is a collection of containers that can run on a host. This resource iscreated by clients and scheduled onto hosts.FIELDS:apiVersion string................4字段配置格式
apiVersion string#表示字符串类型
metadata Object#表示需要嵌套多层字段
labels map[string]string#表示由k:v组成的映射
finalizers []string#表示字串列表
ownerReferences []Object#表示对象列表
hostPID boolean#布尔类型
priority integer#整型
name string -required-#如果类型后面接 -required-表示为必填字段5通过定义清单文件创建 Pod
apiVersion: v1 #核心组v1版本
kind: Pod #资源类别是Pod类别
metadata: #元数据name: pod-test #元数据当前Pod的名字叫pod-testnamespace: default #放在default名称空间里如果这一行不写默认也是default名称空间labels: #labels标签app: myapp #labels标签为app:myapp
spec: #期望containers: #容器组pause不用指定会自动创建- name: nginx #第一个容器名为myapp-1image: nginx:latest #使用的镜像为wangyanglinux/myapp:v1imagePullPolicy: IfNotPresent #镜像拉取策略为优先使用本地镜像。- name: busybox-1 #第二个容器名为busybox-1image: busybox:1.35.0 #使用的镜像为busybox:1.38.0busybox是一个网络服务的工具包imagePullPolicy: IfNotPresentcommand: #command替换的不是cmd替换的是inpoint。arts替换的是镜像里的cmd命令- /bin/sh - -c- sleep 3600 #使busybox容器可以持久化运行3600秒。
#这样就相当于在一个pod中封装了两个mainC一个mainC叫nginx一个mainC叫busybox-1。
创建资源清单实验
vim pod-test.yamlapiVersion: v1
kind: Pod
metadata:name: pod-testnamespace: defaultlabels:app: nginx
spec:containers:- name: nginximage: nginx:latest- name: busybox-1image: busybox:1.35.0command:- /bin/sh- -c- sleep 3600kubectl create -f pod-test.yaml#运行资源清单让资源实例化成对象kubectl get pod -o wide#查看pod的信息以及部署的节点信息#状态有两个需要就绪两个已经就绪当前状态正在运行重启次数0创建时间2分29秒#如果重启次数12345一直增加说明当前的pod不稳定原因有多种例如资源不够用触发oome了配置文件写错运行运行着崩了。#也有可能刚开始不稳定后来就稳定了因为刚开始初始化不成功后来成功了。#重启代表着内部的容器在重建。kubectl describe pod pod-test#查看pod的详情kubectl get events#获取整个集群的events事件信息kubectl get pod --show-labels#查看标签kubectl get pod -w#实时变化内容的展示#执行完之后卡了只有当前pod信息发生改变的时候才会把改变的内容打印出来根据kubectl get pod -o wide命令查看pod运行的节点登录节点。
docker ps -a | grep pod-test#可以看到有三个容器nginxbusybox和pause
三、常用字段解释说明