声明式管理法+yaml文件系统解析

网友投稿 247 2022-11-03

声明式管理法+yaml文件系统解析

```html/xml//查看资源配置清单kubectl get deployment nginx -o yaml//解释资源配置清单kubectl explain deployment.metadata

//修改资源配置清单并应用离线修改: 修改yaml文件,并用kubectl apply -f x888.yaml 文件使之生效注意:当apply不生效时, 先使用delete清除资源,再apply创建资源kubectl get service nginx -o yaml > nginx-sVC.yamlvim nginx-svc.yaml #修改port:8080kubectl delete -f nginx-svc.yaml #删除yaml文件kubectl apply -f nginx-svc.yaml #应用yaml文件kubectl get SVC

在线修改:直接使用kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效( 如port: 888)PS:此修改方式不会对yaml文件内容修改

![1.png](https://s2./images/20220328/1648469534206214.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![1.1.png](https://s2./images/20220328/1648469537445702.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![2.png](https://s2./images/20220328/1648469543439406.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![2.1.png](https://s2./images/20220328/1648469545521103.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![2.3.png](https://s2./images/20220328/1648469549217033.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![2.4.png](https://s2./images/20220328/1648469551911742.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ![3.png](https://s2./images/20220328/1648469554706240.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) # yaml文件解析 YAML语法格式: ●大小写敏感 ●使用缩进表示层级关系 ●不支持Tab键制表符缩进,只使用空格缩进 ●缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格 ●符号字符后缩进一一个空格,如冒号,逗号,短横杆(-)等 ●"---"表示YAML格式, 一一个文件的开始,用于分隔文件间 ●"#”表 示注释 ---- ```html/xml 查看 api 资源版本标签 kubectl api-versions admissionregistration.k8s.io/v1beta1 apiextensions.k8s.io/v1beta1 apiregistration.k8s.io/v1 apiregistration.k8s.io/v1beta1 apps/v1 #如果是业务场景一般首选使用apps/v1 apps/v1beta1 #带有beta字样的代表的是测试版本,不用在生产环境中 apps/v1beta2 authentication.k8s.io/v1 authentication.k8s.io/v1beta1 authorization.k8s.io/v1 authorization.k8s.io/v1beta1 autoscaling/v1 autoscaling/v2beta1 autoscaling/v2beta2 batch/v1 batch/v1beta1 certificates.k8s.io/v1beta1 coordination.k8s.io/v1 coordination.k8s.io/v1beta1 events.k8s.io/v1beta1 extensions/v1beta1 networking.k8s.io/v1 networking.k8s.io/v1beta1 node.k8s.io/v1beta1 policy/v1beta1 rbac.authorization.k8s.io/v1 rbac.authorization.k8s.io/v1beta1 scheduling.k8s.io/v1 scheduling.k8s.io/v1beta1 storage.k8s.io/v1 storage.k8s.io/v1beta1 v1

```html/xml写一个nignx.yaml文件demokubectl create deployment nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml

然后就会导出相应模板,根据模板修改即可vim nginx-deployment.yaml 创建资源对象kubectl create -f nginx-deployment.yaml

查看创建的pod资源kubectl get pods -o wide

![1.png](https://s2./images/20220328/1648470748617898.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 拓展:service的工作流程 ![server的工作流程.png](https://s2./images/20220328/1648470841107217.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) ```html/xml 编写service服务的资源清单 vim nginx-server.yaml apiVersion: v1 kind: Service metadata: name: nginx-svc namespace: default labels: app: nginx spec: type: NodePort ports: - port: 80 targetPort: 80 nodePort: 30080 selector: app: nginx #创建资源对象 kubectl create -f nginx-service.yaml #查看创建的service kubectl get svc 补充: 详解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

```html/xml用--dry-run命令生成yaml资源清单

kubectl run --dry-run 打印相应的 API 对象试运行而不执行创建kubectl run nginx-02 --image=nginx --port=80 --replicas=3 --dry-run查看生成yaml格式kubectl run nginx-02 --image=nginx --port=80 --replicas=3 --dry-run -o yaml

查看生成json格式kubectl run nginx-02 --image=nginx --port=80 --replicas=3 --dry-run -o json

使用yaml格式导出生成模板,并进行修改以及删除一些不必要的参数kubectl create deployment nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run=client -o yaml

vim nginx.yaml #删除不必要的参数apiVersion: apps/v1kind: Deploymentmetadata:labels:run: nginx-02name: nginx-02spec:replicas: 2selector:matchLabels:run: nginx-02template:metadata:labels:run: nginx-02spec:containers:

image: nginxname: nginx-02ports: containerPort: 80

创建资源对象kubectl create -f nginx.yaml

查看创建的servicekubectl get pods

```html/xml 将现有的资源生成模板导出生成yaml文件 ●用--dry-run 命令生成 kubectl run my-deploy --image=nginx --dry-run=client -o yaml > my-deploy.yaml ●用get命令导出 kubectl get SVC nginx-service -o yaml > my-SVC.yaml kubectl edit svc nginx-service # 复制配置,再粘贴到新文件

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PXE自动批量装机,Kickstart无人值守安装,你学会了吗?
下一篇:mybatis中resulthandler的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~