制作商城版网站开发,网站设计教科书,重庆信息发布平台,dw网站建设模板目录 
介绍 
YAML 语法格式 
命令 
应用yaml文件指定的资源 
删除yaml文件指定的资源 查看资源的yaml格式信息 查看yaml文件字段说明 
查看 api 资源版本标签 
修改yaml文件指定的资源 
离线修改 
在线修改 
编写yaml文件 
创建资源对象 
查看创建的pod资源 
创建service服务对…目录 
介绍 
YAML 语法格式 
命令 
应用yaml文件指定的资源 
删除yaml文件指定的资源 查看资源的yaml格式信息 查看yaml文件字段说明 
查看 api 资源版本标签 
修改yaml文件指定的资源 
离线修改 
在线修改 
编写yaml文件 
创建资源对象 
查看创建的pod资源 
创建service服务对外提供访问并测试 
在浏览器输入 nodeIP:nodePort 即可访问 
k8s中的port 
port 
nodePort 
targetPort 
containerPort 
查看生成yaml格式 
查看生成json格式 
总结 
声明式资源管理方式 
如何获取K8S资源配置清单文件模板yaml配置文件 介绍 
适合于对资源的修改操作声明式资源管理方法依赖于资源配置清单文件对资源进行管理资源配置清单文件有两种格式yaml人性化易读json易于api接口解析对资源的管理是通过事先定义在统一资源配置清单内再通过陈述式命令应用到k8s集群里语法格式kubectl create/apply/delete -f xxxx.yam 
YAML 语法格式 
大小写敏感使用缩进表示层级关系不支持Tab键制表符缩进只使用空格缩进缩进的空格数目不重要只要相同层级的元素左侧对齐即可通常开头缩进两个空格符号字符后缩进一个空格如冒号逗号短横杆-等“---”表示YAML格式一个文件的开始用于分隔文件间“#”表示注释 
命令 
应用yaml文件指定的资源 
kubectl create -f xxx.yaml
kubectl apply -f xxx.yaml 
#区别使用create创建资源是一次性的如果使用apply创建后期修改yaml文件再次执行apply可以实现更新资源 
删除yaml文件指定的资源 kubectl delete -f xxx.yaml 查看资源的yaml格式信息 
kubectl get 资源名称 -o yaml 查看yaml文件字段说明 
kubectl explain yaml文件中的字段(多级字段用 . 隔开) 
查看 api 资源版本标签 
kubectl api-versions修改yaml文件指定的资源 
离线修改 
修改yaml文件并用 kubectl apply -f xxxx.yaml 文件使之生效
注意当apply不生效时先使用delete清除资源再apply创建资源
例
kubectl get service nginx -o yaml  nginx-svc.yaml
vim nginx-svc.yaml				#修改port: 8080
kubectl delete -f nginx-svc.yaml
kubectl apply -f nginx-svc.yaml
kubectl get svc 
在线修改 
直接使用 kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效如port: 888
PS此修改方式不会对yaml文件内容修改 
编写yaml文件 
mkdir /opt/demo
cd demo/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		#定义容器的对外的端口 创建资源对象 
kubectl create -f nginx-deployment.yaml查看创建的pod资源 
kubectl get pods -o wide创建service服务对外提供访问并测试 
vim nginx-service.yaml
apiVersion: v1  
kind: Service  
metadata:name: nginx-servicelabels:app: nginx  
spec:type: NodePort  ports:- port: 8080targetPort: 80nodePort: 30007clusterIP: 10.96.171.239selector:app: nginx //创建资源对象
kubectl create -f nginx-service.yaml //查看创建的service
kubectl get svc 在浏览器输入 nodeIP:nodePort 即可访问 
http://192.168.88.31:30512
http://192.168.88.13:30512 k8s中的port 
port 
port 是 k8s 集群内部访问service的端口即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到 service 
nodePort 
nodePort 是外部访问 k8s 集群中 service 的端口通过 nodeIP: nodePort 可以从外部访问到某个 service。默认30000-32767 
targetPort 
targetPort 是 Pod 的端口从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上最后进入容器。 
containerPort 
containerPort 是 Pod 内部容器的端口targetPort 映射到 containerPort。 
kubectl run --dry-runclient 打印相应的 API 对象而不执行创建 
kubectl run nginx-test --imagenginx --port80 --dry-runclient
kubectl create deployment nginx-deploy --imagenginx --port80 --replicas3 --dry-runclient查看生成yaml格式 
kubectl run nginx-test --imagenginx --port80 --dry-runclient -o yaml
kubectl create deployment nginx-deploy --imagenginx --port80 --replicas3 --dry-runclient -o yaml查看生成json格式 
kubectl run nginx-test --imagenginx --port80 --dry-runclient -o json
kubectl create deployment nginx-deploy --imagenginx --port80 --replicas3 --dry-runclient -o json使用yaml格式导出生成模板并进行修改以及删除一些不必要的参数 
kubectl run nginx-test --imagenginx --port80 --dry-runclient -o yaml  nginx-test.yaml
kubectl create deployment nginx-deploy --imagenginx --port80 --replicas3 --dry-runclient -o yaml   nginx-deploy.yamlvim nginx-test.yaml
apiVersion: v1
kind: Pod
metadata:creationTimestamp: null     #删除labels:run: nginx-testname: nginx-test
spec:containers:- image: nginxname: nginx-testports:- containerPort: 80resources: {}             #删除dnsPolicy: ClusterFirstrestartPolicy: Always
status: {}                    #删除 //将现有的资源生成模板导出
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配置文件里定义的配置来实现资源对象的管理操作 
kubectl get -n 命名空间 资源类型 资源名称 -o yaml  XXX.yaml      #获取资源配置清单kubectl apply|create -f XXX.yaml           #创建|更新资源
kubectl delete -f XXX.yaml                 #删除资源kubectl edit -n 命名空间 资源类型 资源名称       #在线修改资源配置对于不支持在线修改的字段只能通过离线修改的方式更新资源 kubectl delete -f XXX.yaml  kubectl apply -f XXX.yamlkubectl explain  资源类型.一级字段.二级字段....     #获取资源配置字段的解释K8S资源配置清单文件字段的值类型
字段: integer   数字         字段: 数值
字段: string    字符串       字段: 字符串     字段: 字符串    字段: 字符串
字段: boolean   布尔值       字段: true|false字段: Object    对象值可能是一层或多层子字段字段:二级字段:三级字段字段: []Object   列表类型的对象             字段:- 二级字段:三级字段- 二级字段: 
字段: map[string]string    映射值可能是一个或多个键值对类型的值字段:key1: value1key2: value2key3: value3 
如何获取K8S资源配置清单文件模板yaml配置文件 
1手写yaml配置文件可以根据 kubectl explain 命令获取字段信息 
2查看现有的资源配置获取kubectl get -n 命名空间 资源类型 资源名称 -o yaml  XXX.yaml                            kubectl edit -n 命名空间 资源类型 资源名称 然后手动复制资源配置粘贴到yaml文件中 
3无中生有模拟运行kubectl陈述式创建资源的命令获取 kubectl create|run|expose  选项  --dry-runclient -o yaml  XXX.yaml 
4复制K8S官网文档的资源配置案例