当前位置: 首页 > news >正文

马鞍山做网站的公司78大连装修公司排名榜

马鞍山做网站的公司78,大连装修公司排名榜,在线设计网站大全,建设银行网站怎么注销网银🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录yaml简介yaml语法规则Yaml语法实例数组…

🍁博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!

文章目录

  • yaml简介
  • yaml语法规则
  • Yaml语法实例
    • 数组(列表)实例; 短横线加空格(- )
    • Yaml 对象(字典)实例;用冒号加空格连接键和值(: )
    • Yaml 数组 对象结合(列表中的字典)实例;短横线加空格(- ),用冒号加空格连接键和值(: )
  • Yaml格式说明与实例
    • 格式说明
    • 实例

yaml简介

yaml 是专门用来写配置文件的语言

yaml文件也是一种配置文件类型,后缀名是.yaml或.yml都可以

运维适用于k8s、docker-compose,也是最近在学k8s要用到yaml文件格式

yaml语法规则

  • 大小写敏感
  • 使用缩进表示层级关系(不能用Tab,只能用空格)
  • 相同层级的元素左对齐
  • #号表示单行注释
  • 字符串可以不用引号标注
  • 数组(列表)是使用 - 开头的清单形式,- 后面必须加空格
  • 表示对象的 : 和表示数组(列表)的 - 后面都必须要有空格。可以使用 - 回车- 回车-回车 在一个文件里分隔多个 YAML 对象

Yaml语法实例

数组(列表)实例; 短横线加空格(- )

  - linux- name- windows

Yaml 对象(字典)实例;用冒号加空格连接键和值(: )

  Kubernetes: linux: vimname: 张三windows: steam

Yaml 数组 对象结合(列表中的字典)实例;短横线加空格(- ),用冒号加空格连接键和值(: )

containers: 
- image: mysql5.7.38name: mysqlrestart: alwaysports: - 6379:6379volumes: - /etc/localtime:/etc/localtime

Yaml格式说明与实例

格式说明

pod.yaml

# yaml格式的pod定义问件完整内容:
apiVersion: v1       #必选,版本号,例如v1
kind: Pod            #必选,Pod
metadata:            #必选,元数据name: string       #必选,Pod名称namespace: string  #必选,Pod所属的命名空间labels:            #自定义标签- name: string   #自定义标签名字annotations:       #自定义注释列表- name: string
spec:                #必选,Pod中容器的详细定义containers:        #必选,Pod中容器列表- name: string     #必选,容器名称image: string    #必选,容器的镜像名称imagePullPolicy: [Always | Never | IfNotPresent]    #获取镜像的策略 Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像command: [string]    #容器的启动命令列表,如不指定,使用打包时使用的启动命令args: [string]       #容器的启动命令参数列表workingDir: string   #容器的工作目录volumeMounts:        #挂载到容器内部的存储卷配置- name: string       #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名mountPath: string  #存储卷在容器内mount的绝对路径,应少于512字符readOnly: boolean  #是否为只读模式ports:               #需要暴露的端口库号列表- name: string       #端口号名称containerPort: int #容器需要监听的端口号hostPort: int      #容器所在主机需要监听的端口号,默认与Container相同protocol: string   #端口协议,支持TCP和UDP,默认TCPenv:                 #容器运行前需设置的环境变量列表- name: string       #环境变量名称value: string      #环境变量的值resources:           #资源限制和请求的设置limits:            #资源限制的设置cpu: string      #Cpu的限制,单位为core数,将用于docker run --cpu-shares参数memory: string   #内存限制,单位可以为Mib/Gib,将用于docker run --memory参数requests:          #资源请求的设置cpu: string      #Cpu请求,容器启动的初始可用数量memory: string   #内存清楚,容器启动的初始可用数量livenessProbe:       #对Pod内个容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方法有exec、httpGet和tcpSocket,对一个容器只需设置其中一种exec:              #对Pod容器内检查方式设置为exec方式command: [string]  #exec方式需要制定的命令或脚本httpGet:           #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、portpath: stringport: numberhost: stringscheme: stringHttpHeaders:- name: stringvalue: stringtcpSocket:         #对Pod内个容器健康检查方式设置为tcpSocket方式port: numberinitialDelaySeconds: 0   #容器启动完成后首次探测的时间,单位为秒timeoutSeconds: 0        #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒periodSeconds: 0         #对容器监控检查的定期探测时间设置,单位秒,默认10秒一次successThreshold: 0failureThreshold: 0securityContext:privileged:falserestartPolicy: [Always | Never | OnFailure]#Pod的重启策略,Always表示一旦不管以何种方式终止运行,kubelet都将重启,OnFailure表示只有Pod以非0退出码退出nodeSelector: obeject  #设置NodeSelector表示将该Pod调度到包含这个label的node上,以key:value的格式指定将该Pod调度到包含这个label的node上,以key:value的格式指定imagePullSecrets:      #Pull镜像时使用的secret名称,以key:secretkey格式指定- name: stringhostNetwork:false      #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络volumes:               #在该pod上定义共享存储卷列表- name: string         #共享存储卷名称(volumes类型有很多种)emptyDir: {}         #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值hostPath: string     #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录path: string       #Pod所在宿主机的目录,将被用于同期中mount的目录secret:              #类型为secret的存储卷,挂载集群与定义的secre对象到容器内部scretname: string  items:     - key: stringpath: stringconfigMap:           #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部name: stringitems:- key: string

deployment.yaml

apiVersion: extensions/v1beta1   #接口版本
kind: Deployment                 #接口类型
metadata:name: cango-demo               #Deployment名称namespace: cango-prd           #命名空间labels:app: cango-demo              #标签
spec:replicas: 3strategy:rollingUpdate:          #由于replicas为3,则整个升级,pod个数在2-4个之间maxSurge: 1           #滚动升级时会先启动1个podmaxUnavailable: 1     #滚动升级时允许的最大Unavailable的pod个数template:         metadata:labels:app: cango-demo     #模板名称必填sepc:                   #定义容器模板,该模板可以包含多个容器containers:                                                                   - name: cango-demo                                                              #镜像名称image: swr.cn-east-2.myhuaweicloud.com/cango-prd/cango-demo:0.0.1-SNAPSHOT    #镜像地址command: [ "/bin/sh","-c","cat /etc/config/path/to/special-key" ]             #启动命令args:                                                                         #启动参数- '-storage.local.retention=$(STORAGE_RETENTION)'- '-storage.local.memory-chunks=$(STORAGE_MEMORY_CHUNKS)'- '-config.file=/etc/prometheus/prometheus.yml'- '-alertmanager.url=http://alertmanager:9093/alertmanager'- '-web.external-url=$(EXTERNAL_URL)'
#如果command和args均没有写,那么用Docker默认的配置。
#如果command写了,但args没有写,那么Docker默认的配置会被忽略而且仅仅执行.yaml文件的command(不带任何参数的)。
#如果command没写,但args写了,那么Docker默认配置的ENTRYPOINT的命令行会被执行,但是调用的参数是.yaml中的args。
#如果如果command和args都写了,那么Docker默认的配置被忽略,使用.yaml的配置。imagePullPolicy: IfNotPresent  #如果不存在则拉取livenessProbe:       #表示container是否处于live状态。如果LivenessProbe失败,LivenessProbe将会通知kubelet对应的container不健康了。随后kubelet将kill掉httpGet:path: /health    #如果没有心跳检测接口就为/port: 8080scheme: HTTPinitialDelaySeconds: 60 #启动后延时多久开始运行检测timeoutSeconds: 5successThreshold: 1failureThreshold: 5readinessProbe:httpGet:path: /health     #如果没有心跳检测接口就为/port: 8080scheme: HTTPinitialDelaySeconds: 30 ##启动后延时多久开始运行检测timeoutSeconds: 5successThreshold: 1failureThreshold: 5resources:              ##CPU内存限制requests:cpu: 2memory: 2048Milimits:cpu: 2memory: 2048Mienv:                    ##通过环境变量的方式,直接传递pod=自定义Linux OS环境变量- name: LOCAL_KEY     #本地Keyvalue: value- name: CONFIG_MAP_KEY  #局策略可使用configMap的配置Key,valueFrom:configMapKeyRef:name: special-config   #configmap中找到name为special-configkey: special.type      #找到name为special-config里data下的keyports:- name: httpcontainerPort: 8080   #对service暴露端口volumeMounts:             #挂载volumes中定义的磁盘- name: log-cachemount: /tmp/log- name: sdb               #普通用法,该卷跟随容器销毁,挂载一个目录mountPath: /data/media    - name: nfs-client-root    #直接挂载硬方法,如挂载下面的nfs目录到/mnt/nfsmountPath: /mnt/nfs- name: example-volume-config  #高级用法第1种,将ConfigMap的log-script,backup-script分别挂载到/etc/config目录下的一个相对路径path/to/...下mountPath: /etc/config       - name: rbd-pvc                #高级用法第2种,挂载PVC(PresistentVolumeClaim)
#使用volume将ConfigMap作为文件或目录直接挂载,其中每一个key-value键值对都会生成一个文件,key为文件名,value为内容volumes:  # 定义磁盘给上面volumeMounts挂载- name: log-cacheemptyDir: {}- name: sdb  #挂载宿主机上面的目录hostPath:path: /any/path/it/will/be/replaced- name: example-volume-config  # 供ConfigMap文件内容到指定路径使用configMap:name: example-volume-config  #ConfigMap中名称items:- key: log-script           #ConfigMap中的Keypath: path/to/log-script  #指定目录下的一个相对路径path/to/log-script- key: backup-script        #ConfigMap中的Keypath: path/to/backup-script  #指定目录下的一个相对路径path/to/backup-script- name: nfs-client-root         #供挂载NFS存储类型nfs:server: 10.42.0.55          #NFS服务器地址path: /opt/public           #showmount -e 看一下路径- name: rbd-pvc                 #挂载PVC磁盘persistentVolumeClaim:claimName: rbd-pvc1         #挂载已经申请的pvc磁盘

services.yaml

apiVersion: v1
kind: Service
matadata:                                #元数据name: string                           #service的名称namespace: string                      #命名空间labels:                                #自定义标签属性列表- name: stringannotations:                           #自定义注解属性列表- name: string
spec:                                    #详细描述selector: []                           #label selector配置,将选择具有label标签的Pod作为管理#范围type: string                           #service的类型,指定service的访问方式,默认为#clusterIpclusterIP: string                      #虚拟服务地址sessionAffinity: string                #是否支持sessionports:                                 #service需要暴露的端?列表- name: string                         #端口名称protocol: string                     #端口协议,支持TCP和UDP,默认TCPport: int                            #服务监听的端口号targetPort: int                      #需要转发到后端Pod的端口号nodePort: int                        #当type = NodePort时,指定映射到物理机的端口号status:                                #当spce.type=LoadBalancer时,设置外部负载均衡器的地址loadBalancer:                        #外部负载均衡器ingress:                           #外部负载均衡器ip: string                       #外部负载均衡器的Ip地址值hostname: string                 #外部负载均衡器的主机名

job.yaml

apiVersion: batch/v1
kind: Job
metadata:name: job-demo
spec:template:metadata:name: job-demospec:restartPolicy: Never  #Job的RestartPolicy仅支持Never和OnFailure两种,不支持Always,我们知道Job就相当于来执行一个批处理任务,执行完就结束了containers:- name: counterimage: busyboxcommand:- "bin/sh"- "-c"- "for i in 9 8 7 6 5 4 3 2 1; do echo $i; done

Cronjob.yaml

CronJob其实就是在Job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性地在给定时间点运行。这个实际上和我们Linux中的crontab就非常类似了。一个CronJob对象其实就对应中crontab文件中的任务,它根据配置的时间格式周期性地运行一个Job,格式和crontab也是一样的。

#crontab的格式如下:
#分时日月周要运行的命令第1列分钟0~59 第2列时0~23)第3列日1~31 第4列月1~12 第5列周0~7(0和7表示星期天)第6列要运行的命令
apiVersion: batch/v2alpha1
kind: CronJob
metadata:name: cronjob-demo
spec:schedule: "*/1 * * * *"jobTemplate:spec:template:spec:restartPolicy: OnFailurecontainers:- name: helloimage: busyboxargs:- "bin/sh"- "-c"- "for i in 9 8 7 6 5 4 3 2 1; do echo $i; done"

我们这里的Kind是CronJob了,要注意的是.spec.schedule字段是必须填写的,用来指定任务运行的周期,格式就和crontab一样,另外一个字段是.spec.jobTemplate, 用来指定需要运行的任务,格式当然和Job是一致的。还有一些值得我们关注的字段.spec.successfulJobsHistoryLimit和.spec.failedJobsHistoryLimit,表示历史限制,是可选的字段。它们指定了可以保留多少完成和失败的Job,默认没有限制,所有成功和失败的Job都会被保留。然后,当运行一个Cron Job时,Job可以很快就堆积很多,所以一般推荐设置这两个字段的值。如果设置限制的值为 0,那么相关类型的Job完成后将不会被保留。

实例

cs.yaml

apiVersion: v1  #API版本号,用于迭代我们的更新版本
kind: Pod       #资源对象的类型,有pod,Node,Job,Service
metadata:       #资源元数据,标记对象,方便管理name: hll-pod #给pod起名称labels:       #给pod打标签,方便找env: demo   #注入容器内的环境变量owner: feifei
spec:           #资源规格,pod内容器相关信息replicas: 1   #副本数量selector:     #标签选择器matchLabels:app: webtemplate:     #pod模板metadata:   #pod元数据labels:   #给pod打标签,方便找app: webspec:         #pod规格containers:   #容器配置- image: nll:v1    #运行容器镜像name: nll              #容器名称ports:                 #端口号- containerPort: 80    #容器端口号- 8090:8221            #容器内服务映射端口volumes:                 #容器持久化- /etc/localtime:/etc/localtime         #容器内服务映射路径restart: always          #重启容器直接重启服务

k8s yaml文件创建和删除

kubectl apply -f cs.yml
kubectl delete -f cs.yml

docker-compose文件创建

docker-compose -f cs.yaml up -d

注意:docker-compose和k8s用的yaml文件写法还是有一些区别的。

http://www.yayakq.cn/news/687052/

相关文章:

  • 深圳罗湖的网站设计wordpress 4.8.1漏洞
  • 深圳专业极速网站建设企业管理软件7
  • 中英文网站英文东莞培训网站建设
  • 肇庆企业建站模板分布式加载网站的静态
  • 手机网站的页面大小网店代运营合同模板
  • 网站没备案可以做商城吗wordpress需要的系统
  • 介绍好的免费网站模板下载地址黑河网站seo
  • WordPress如何设置邮箱验证seo工具不包括
  • 哈尔滨网站设计公司电话韩国能否出线
  • 安康做网站哪家好一般企业网站3年多少钱
  • 童装网站建设目标专门做酒店设计的网站
  • 怎么建设局域网站效果图网站有哪些好的
  • 苏州品牌网站设计企业广告推广话术
  • 亳州网站开发公司wordpress多重查询
  • 网站建设那个公司好电子商务网站建设工具
  • 网站建设信息服务费计入什么科目私人音乐服务器
  • 旅游网站建设策划书案例wordpress首页置顶文章
  • 建网站要先建什么wordpress the_tag
  • 茶叶网站策划微信网站上传图片
  • 建站自助延安市建设工程交易中心网站
  • 如何做服装微商城网站阿里低代码开发平台
  • 网站怎么写容易获得关键词排名推广计划名称写什么
  • 购物网站 后台网站开发周期表
  • 做网站推广员图片处理问题青岛cms模板建站
  • 高端品牌网站建设定位站长工具seo优化
  • wap网站源代码html5视频播放器插件
  • 企业网站建设费用记入什么科目深圳网页设计师招聘
  • 福州哪里做网站做网站每天任务及实训过程
  • 网站下拉广告百度电脑版官网下载
  • 如何做网站搜索功能计算机编程与网站建设