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

网站搭建 里短信新品推广计划与方案

网站搭建 里短信,新品推广计划与方案,南阳网站建设报价,怎么用asp做网站目录 一、yaml和json介绍 1、yuml语言介绍 2、k8s支持的文件格式 二、声明式对象管理 1、deployment.yaml文件详解 2、Pod yaml文件详解 3、Service yaml文件详解 三、编写资源配置清单 1、 编写yaml文件 2、 创建并查看pod资源 3、创建service服务对外提供访问并测试…

目录

一、yaml和json介绍

1、yuml语言介绍

2、k8s支持的文件格式

二、声明式对象管理

1、deployment.yaml文件详解

2、Pod yaml文件详解

3、Service yaml文件详解

三、编写资源配置清单

1、 编写yaml文件

2、 创建并查看pod资源

3、创建service服务对外提供访问并测试

4、创建资源并查看service

5、浏览器访问测试

四、试运行与格式

1、-dry-run:试运行

2、查看生成yaml格式

3、查看生成的json格式

4、使用yaml格式导出生成的模板

5、将现有的资源生成模板导出


一、yaml和json介绍

1、yuml语言介绍

YAML是一个类似XML、JSON的标记性语言,它强调以数据为中心,并不是以标识语言为重点,而YAML本身的定义比较简单。号称“一种人性化的数据格式语言”。

YAML的语法格式:

  • 大小写敏感
  • 使用缩进标识层级关系
  • 缩进不允许使用tab,只允许空格(低版本限制)
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • “ # ”表示注释

2、k8s支持的文件格式

Kubernetes 支持 YAML 和 JSON 格式管理资源对象

  • JSON 格式:主要用于 api 接口之间消息的传递
  • YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读

二、声明式对象管理

##查看 api 资源版本标签
kubectl api-versions#如果是业务场景一般首选使用 apps/v1
#带有beta字样的代表的是测试版本,不用在生产环境中

1、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掉container,并根据RestarPolicy进行进一步的操作。默认情况下LivenessProbe在第一次检测之前初始化值为Success,如果container没有提供LivenessProbe,则也认为是Success;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磁盘

2、Pod yaml文件详解

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退出码退出才重启,Nerver表示不再重启该PodnodeSelector: obeject		#设置NodeSelector表示将该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

3、Service 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                 #外部负载均衡器的主机名

三、编写资源配置清单

1、 编写yaml文件

vim nginx-deployment.yaml
apiVersion: apps/v1		#指定api版本标签
kind: Deployment		#定义资源的类型/角色,deployment为副本控制器,此处资源类型可以是Deployment、Job、Ingress、Service等
metadata:					#定义资源的元数据信息,比如资源的名称、namespace、标签等信息name: nginx-deployment	#定义资源的名称,在同一个namespace空间中必须是唯一的labels:				#定义Deployment资源标签app: nginx	
spec:					#定义deployment资源需要的参数属性,诸如是否在容器失败时重新启动容器的属性replicas: 3			#定义副本数量selector:				#定义标签选择器matchLabels:		#定义匹配标签app: nginx		#需与 .spec.template.metadata.labels 定义的标签保持一致template:				#定义业务模板,如果有多个副本,所有副本的属性会按照模板的相关配置进行匹配metadata:labels:           #定义Pod副本将使用的标签,需与 .spec.selector.matchLabels 定义的标签保持一致app: nginxspec:containers:				#定义容器属性- name: nginx				#定义一个容器名,一个 - name: 定义一个容器image: nginx:1.15.4		#定义容器使用的镜像以及版本ports:- containerPort: 80		#定义容器的对外的端口---------------------------------------------------------------
vim nginx-deployment.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.15.4ports:- containerPort: 80

2、 创建并查看pod资源

//创建资源对象
kubectl apply -f nginx-deployment.yaml//查看创建的pod资源
kubectl get pods -o wide

3、创建service服务对外提供访问并测试

vim nginx-service.yaml
apiVersion: v1  
kind: Service  
metadata:name: nginx-servicelabels:app: nginx  
spec:type: NodePort  ports:- port: 80targetPort: 80  selector:app: nginx

4、创建资源并查看service

kubectl apply -f nginx-service.yaml //查看创建的service
kubectl get svc

5、浏览器访问测试

##在浏览器输入 nodeIP:nodePort 即可访问
http://192.168.247.10:31562

详解k8s中的port:

  • port:port 是 k8s 集群内部访问service的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service
  • nodePort:nodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个 service。
  • targetPort:targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器。
  • containerPort:containerPort 是 Pod 内部容器的端口,targetPort 映射到 containerPort。

四、试运行与格式

1、-dry-run:试运行

  • –dry-run: 表示试运行,不真正执行命名(用来测试命令是否正确),即并不会真的创建出pod和deployment实例,去掉该参数后即可真正执行命令。
kubectl run nginx-test --image=nginx --port=80 --dry-run=client
kubectl create deployment nginx-deploy --image=nginx --port=80 --replicas=3 --dry-run=client

2、查看生成yaml格式

  • 使用–dry-run试运行可不触发生成命令,然后通过 -o yaml 可实现对其 yaml 资源配置清单的查看
kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml
#试运行一个pod,并将它的yaml配置格式显示出来

3、查看生成的json格式

  • 可通过-o json 查看该命令产生的json配置清单
kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o json
#试运行一个pod控制器,并显示的pod的配置信息

4、使用yaml格式导出生成的模板

kubectl run nginx-test --image=nginx --port=80 --dry-run=client -o yaml > nginx-test.yaml
#试运行pod控制器,并以yaml格式显示出来,将结构追加到指定的yaml文件中

5、将现有的资源生成模板导出

#生成模板
kubectl get svc nginx-service -o yaml
#生成并导出模板
kubectl get svc nginx-service -o yaml > my-svc.yaml

查看字段帮助信息,可一层层的查看相关资源对象的帮助信息

kubectl explain deployments.spec.template.spec.containers
或
kubectl explain pods.spec.containers
问:yaml文件如何写?
1、用 --dry-run 命令生成
2、用get命令导出
http://www.hengruixuexiao.com/news/14716.html

相关文章:

  • 中国镇江网好搜网惠州seo
  • 岳阳建设网站网络营销具有什么特点
  • 南宁网站建设boxsin手机注册网站
  • 做网站去哪里找百度竞价开户哪家好
  • 找网络公司做网站需要注意的企业宣传推广方案
  • 网站首页的布局小红书软文案例
  • 专业建设网站宁波seo推广平台
  • 天门做网站百度网络小说排行榜
  • 运动 网站专题怎么做建网站怎么建
  • 大通县公司网站建设网站友链交换平台
  • reeyee网站建设qq群排名优化
  • 宁波做网站制作站长网站提交
  • 做汽车配件招聘网站深圳seo优化公司哪家好
  • 网站开发方式有哪四种seoer是什么意思
  • 法律对网站建设的规制魔贝课凡seo
  • 怎么在网站做推广和宣传外贸网站推广方式
  • 2019年做网站还有机会吗深圳网站seo优化公司
  • 怎么制作网站横幅百度搜索指数入口
  • 网站的弹窗广告怎么做软文广告属于什么营销
  • 如何在图片上添加文字做网站百度首页
  • 如何在相关网站免费做宣传广告网站搜索引擎优化的步骤
  • 全球最好的黄页网站sem竞价广告
  • 蓬莱专业做网站公司营销策略范文
  • 吴江做网站公司广东百度推广的代理商
  • 移动开发网站建设培训学校管理制度大全
  • 后勤集团网站建设免费推广引流平台有哪些
  • 中国电力建设公司排名seo网站的优化方案
  • 北京 网站代运营网站优化关键词排名公司
  • 阜阳网站制作公司哪里有营销模式和营销策略
  • 廊坊制作网站公司资源搜索神器