企业如何做网站外包多少钱,怎样建立一个网站,网站搭建的人,哪个设计网站做兼职好Kubernetes资源文件yaml参数介绍
yaml 介绍
yaml 是一个类似 XML、JSON 的标记性语言。它强调以数据为中心#xff0c;并不是以标识语言为重点例如 SpringBoot 的配置文件 application.yml 也是一个 yaml 格式的文件
语法格式
通过缩进表示层级关系不能使用tab进行缩进并不是以标识语言为重点例如 SpringBoot 的配置文件 application.yml 也是一个 yaml 格式的文件
语法格式
通过缩进表示层级关系不能使用tab进行缩进只能使用空格一般开头缩进两个空格大小写敏感字符后缩进一个空格如冒号、逗号如果需要将多段yaml配置放在一个文件中中间要使用---分隔使用#表示注释
yaml文件的编写
快速编写yaml文件通过命令导出新的yaml文件
#创建nginx资源文件并且不启动资源
kubectl create deployment demo-nginx --imagenginx:1.23.0 -o yaml --dry-runclient nginx.yaml#查看nginx.yaml
cat nginx.yaml精简版 yaml
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: demo-nginxname: demo-nginx
spec:replicas: 1selector:matchLabels:app: demo-nginxstrategy: {}template:metadata:creationTimestamp: nulllabels:app: demo-nginxspec:containers:- image: nginx:1.23.0name: nginxresources: {}
status: {}
pod的yaml文件示例
# pod的最基础的yaml文件最少需要以下的几个参数
apiVersion: v1 # API版本号注意具有多个不同的对象可能会使用不同API
kind: Pod # 对象类型pod
metadata: # 元数据name: string # POD名称namespace: string # 所属的命名空间
spec: # 资源内容的规范containers: # 容器列表- name: string # 容器名称image: string # 容器镜像常用字段含义
必须存在的属性
参数名字段类型说明versionStringk8s API的版本可使用kubectl api-versions命令查询kindString指定k8s资源的类型比如Pod、DeploymentmetadataObject元数据对象固定写值metadatametadata.nameString元数据对象的名字比如命名pod的名字metadata.namespaceString元数据对象的命名空间specObject详细定义对象固定值写Specspec.container[]arrayspec对象的容器列表定义spec.container[].nameString容器对象的名字spec.container[].imageString定义要用到的对象名称
spec 主要对象
spec.containers
参数名字段类型说明spec.containers[].nameString定义容器的名字spec.containers[].imageString定义要用到的镜像名称spec.containers[].imagePullPolicyString定义镜像拉取策略有Always、Never、IfNotPresent三个值可选1Always意思是每次都尝试重新拉取镜像 2Never表示仅使用本地镜像 3IfNotPresent如果本地有镜像就使用本地镜像没有就拉取在线镜像。 上面三个值都没设置的话默认是Always。spec.containers[].command[]list指定容器启动命令因为是数组可以指定多个不指定则使用镜像打包时使用的启动命令。spec.containers[].args[]list指定容器启动命令参数因为是数组可以指定多个spec.containers[].workingDirString指定容器的工作目录spec.containers[].volumeMounts[].nameString指定可以被容器挂载的存储卷的名称spec.containers[].volumeMounts[].mountPathString指定可以被容器挂载的存储卷的路径spec.containers[].volumeMounts[].readOnlyString设置存储卷路径的读写模式ture 或者false默认为读写模式spec.containers[].ports[]list指定容器需要用到的端口列表spec.containers[].ports[].nameString指定端口名称spec.containers[].ports[].containerPortString指定容器需要监听的端口号spec.containers[].ports[].hostPortString指定容器所在主机需要监听的端口号默认跟上面containerPort相同注意设置了hostPort 同一台主机无法启动该容器的相同副本因为主机的端口号不能相同这样会冲突spec.containers[].ports[].protocolString指定端口协议支持TCP和UDP默认值为TCPspec.containers[].env[]list指定容器运行前需设置的环境变量列表spec.containers[].env[].nameString指定环境变量名称spec.containers[].env[].valueString指定环境变量值spec.containers[].env[].resourcesObject指定资源限制和资源请求的值这里开始就是设置容器的资源上限spec.containers[].env[].resources.limitsObject指定设置容器运行时资源的运行上限spec.containers[].env[].resources.limits.cpuString指定CPU的限制单位为core数将用于 docker run --cpu-shares参数spec.containers[].resources.limits.memoryString指定MEM内存的限制单位为MIB、GiBspec.containers[].resources.requestsObject指定容器启动和调度时的限制设置spec.containers[].resources.requests.cpuStringCPU请求单位为core数容器启动时初始化可用数量spec.containers[].resources.requests.memoryString内存请求单位为MIB、GiB容器启动的初始化可用数量
spec.volumes
参数名字段类型说明spec.volumes[].nameString定义Pod的共享存储卷的名称容器定义部分的spec.containers[].volumeMounts[].name的值跟这里是一样的spec.volumes[].emptyDirObject指定Pod的临时目录值为一个空对象emptyDir:{}spec.volumes[].hostPathObject指定挂载Pod所在宿主机的目录spec.volumes[].hostPath.pathString指定Pod所在主机的目录将被用于容器中mount的目录spec.volumes[].secretObject指定类型为secret的存储卷secret意为私密、秘密的意思很容易理解它存储一些密码token或者秘钥等敏感安全文件。挂载集群预定义的secret对象到容器内部。spec.volumes[].configMapObject指定类型为configMap的存储卷表示挂载集群预定义的configMap对象到容器内部。spec.volumes[].livenessProbeObject指定Pod内容器健康检查的设置当探测无响应几次后系统将自动重启该容器。这个在前面的文章中有说具体可以设置exec、httpGet、tcpSocketspec.volumes[].livenessProbe.execObject指定Pod内容器健康检查的设置确定是exec方式spec.volumes[].livenessProbe.exec.command[]String指定exec方式后需要指定命令或者脚本用这个参数设置spec.volumes[].livenessProbe.httpGetObject指定Pod内容器健康检查的设置确定是httpGet方式spec.volumes[].livenessProbe.tcpSocketObject指定Pod内容器健康检查的设置确定是tcp Socket方式spec.volumes[].livenessProbe.initialDelaySecondsNumber容器启动完成后首次探测的时间设置单位为sspec.volumes[].livenessProbe.timeoutSecondsNumber对容器健康检查的探测等待响应的超时时间设置单位为S默认为1s。若超过该超时时间设置则认为该容器不健康会重启该容器。spec.volumes[].livenessProbe.periodSecondsNumber对容器健康检查的定期探测时间设置单位为S默认10s探测一次。
Kubernetes常见资源类型和命令
查看资源类型和命令
#查看资源
kubectl api-resources#查看命令帮助
kubectl --help常用资源分类和缩写
名称命令缩写节点nodesno名称空间namespacesnspod资源podspopod控制器replicasetsrspod控制器deploymentsdeploy服务发现-统一pod对外接口servicessvc服务发现-统一pod对外接口ingressing存储资源persistentvolumespv存储资源persistentvolumeclaimspvc
常用资源操作命令
命令分类命令翻译基本命令create创建资源delete删除资源edit编辑资源get获取资源patch更新资源explain解释资源运行和调试run运行指定的镜像expose暴露服务describe描述资源内部信息logs打印容器在 pod 中的日志attach进入运行中的容器exec执行容器中的一个命令cp在Pod内外复制文件scale扩容/缩容Pod的数量autoscale扩容/缩容Pod的数量高级命令applyrclabel标签其它命令cluster-info集群信息version版本