大名做网站网页好看的网站设计
news/
2025/10/7 5:20:04/
文章来源:
大名做网站,网页好看的网站设计,建设包包网站的目的,泉州建设工程招投标信息网在k8s当中支持两种声明资源的方式#xff1a; 1、 yaml格式#xff1a;主要用于和管理资源对象
2、 json格式#xff1a;主要用于在API接口之间进行消息传递 声明式管理方法(yaml)文件 1、 适合对资源的修改操作
2、 声明式管理依赖于yaml文件#xff0c;所有的内容都在y… 在k8s当中支持两种声明资源的方式 1、 yaml格式主要用于和管理资源对象
2、 json格式主要用于在API接口之间进行消息传递 声明式管理方法(yaml)文件 1、 适合对资源的修改操作
2、 声明式管理依赖于yaml文件所有的内容都在yaml文件当中。
3、 编辑好的yaml文件还是要靠陈述式命令发布到k8s集群当中。
有三种方式
create -f只能创建不能更新。从指定yml文件读取配置创建服务不能更新。apply -f即可以创建资源对象也可以更新资源对象。如果yml文件更改了apply可以直接更新资源对象。delete -f删除yml文件中声明的资源对象 yml文件如何生成 1.手动书写
2.可以根据已有的资源成功生成。
kubectl get deplotment deployment.apps nginx -o yaml /opt/test.yamlkubectl apply -f test.yaml --force
#强制执行yaml文件
#如果不想使用最新的deployment再创建yaml文件可以使用--force强制执行 kubectl get svc nginx-service -o yaml /opt/service.yaml常见的yaml类型
1、 deployment的yaml文件格式用于部署还有daemonset和statefulser
2、 service的yaml文件用于暴露服务端口
3、 不基于控制器的pod的yaml文件 k8s当中支持两种声明式的资源管理方式
1.yml格式用于配置和管理资源对象
2.json格式主要用于在api接口之间消息的传递 如何查看deployment的格式模板 kubectl explain deployment 如何用yaml文件编写
cd /opt
vim nginx1.ymlapiVersion: apps/v1
#声明api版本标签
kind: Deployment
#定义资源的类型service/pod/deployment/job/ingress/daemonset/statfluset
metadata: name: nginx1namespace: zzrlabels: zhaozirui: nginx1
#定义资源的元数据信息 比如资源的名称资源对象部署的命名看空间也可以在这里声明标签等等信息
spec:
#定义deployment的资源需要的参数属性。replicas: 3
#定义副本数selector:
#定义标签选择器matchLabels:zhaozirui: nginx1
#选择匹配的标签template:
#定义业务模板如果定义了多个副本所有的副本属性都会按照模板的配置进行匹配。metadata: labels: zhaozirui: nginx1
#定义了pod的副本都是用来元数据的标签和属性来进行匹配spec:containers: - name: nginximage: nginx:1.10posts:- containerPort: 80
#spec声明的是容器的相关参数虽然制定了容器的暴露端口号-80如果镜像默认的端口不是80依然没用。 如何暴露服务--service的yaml vim nginx-service.yamlapiVersion: v1
kind: Service
metadata:name: nginx-servicenamespace: zzrlabels:zhaozirui: nginx1
#元数据信息包括service的名称所属的命名空间以及要匹配的deployment的标签。要和之前的保持一致。
spec: type: NodePortports:- port: 80targetPort: 80selector:zhaozirui: nginx1
#匹配所有的标签都是zhaozirui:nginx1的pod的后端提供服务
wqkubectl apply -f nginx-service.yaml
kubectl get svc -n zzr创建pod的yaml文件 vim pod.yamlapiVersion: v1
kind: Pod
#定义元数据信息pod的名称,命名空间标签
metadata:name: centos1namespace: zzr
spec:restartPolicy: Never
#restartPolicy指的是pod内的容器启动失败或者有问题的重启策略Always Nerver Onfailure(只有异常退出才会重启状态非0如果状态码是0不重启。)restartPolicy指的是容器的重启策略资源类型定义为deployment容器的重启策略只能是always。containers: - name: centosimage: centos:7wq
kubectl apply -f pod.yaml
kubectl pods -n zzr
kubectl describe pod centos1 -n zzrkubectl get pod -n zzr restartPolicy的三种状态码
pod内的容器如果启动失败或者有问题时的重启策略 Always永不重启
Never从不重启
Onfailure只有异常退出才会重启。状态码非0则重启.如果状态码是0则不重启 command和args commandargs定义容器运行的命令参数类似于docker中的CMD和entrypoint
args可以理解为docker中的CMD给command传参
command和args都会覆盖原容器的标准输出CMD和entrypoint containers:- name: centosimage: centos:7command: [echo]args: [hello,world!]
#启动时候默认执行的命令
#args可以给command传参类似于(CMD和entrypoint)
#如果在yaml文件中定义了输出内容就会覆盖掉原来容器内部的标准输出 command和args都会覆盖原容器的标准输出(CMD和entrypoint) args的书写
metadata:containers:args:- /bin/bash- -c- while true; do sleep 3600; done
#多个命令要用分号隔开
wqkubectl apply -f pod.yaml
kubectl get pods -n guoqi
kubectl logs -f centos1 -n guoqi
kubectl describe pod centos1 -n zzr换个写法
metadata:containers:args: [/bin/bash,-c,touch /opt/123.txt; echo 123 /opt/123.txt; sleep 3600]wqkubectl apply -f pod.yml
kubectl get pods -n guoqi
kubectl exec -it centos1 -n guoqi --cat /opt/123.txt
直接查看容器内命令。
command写法 写法1containers:- name: centosimage: centos:7command: [/bin/bash, -c, touch /opt/123.txt; echo 123 /opt/123.txt; sleep 3600]
#在一行定义多个内容需要用逗号隔开。多个命令需要用分号隔开
#执行多个命令必须要加/bin/bash, -c写法2containers:- name: centosimage: centos:7command: [/usr/bin/test, -e, /etc/passwd]
#这样的格式只能执行单个命令。需要加上绝对路径 command和args的总结
同一个yaml文件内command和args只能存在一个表示容器启动时的命令
除非需要传参的时候command和args可以同时出现
无论是args或者是command都会覆盖CMD和entrypoint标准输出
建议写在一行提高可读性
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929979.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!