认识yml文件

yaml文件语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。
  1. apiVersion: extensions/v1beta1 # 当前配置格式的版本
  2. kind: Deployment # 要创建的资源的类型
  3. metadata: # 资源的元素据
  4. name: nginx1
  5. spec: # 资源的说明书
  6. replicas: 2 # 副本数量
  7. template: # 定义pod模板
  8. metadata: # pod 元数据
  9. labels: # 标签
  10. name: web
  11. spec: # pod 说明
  12. containers: #定义每个容器的属性 name和image 是必选项
  13. - name: nginx # " - " 不要忘记因为containers节元素为列表格式
  14. image: nginx

查找资源时用到的命令

  1. ╭─root@node1 ~
  2. ╰─➤ kubectl explain deploy
  3. KIND: Deployment
  4. VERSION: extensions/v1beta1
  5. ...
  6. # kubectl api-resources
  7. # kubectl explain deploy.metadata
  8. # kubectl explain deploy.spec
  9. # kubectl explain deploy.spec.template
  10. # kubectl explain deploy.spec.template.spec
  11. # kubectl explain deploy.spec.template.metadata

使用yml文件部署

第一步:编写yml文件

  1. ╭─root@node1 ~
  2. ╰─➤ vim nginx.yml
  3. ...
  4. apiVersion: extensions/v1beta1
  5. kind: Deployment
  6. metadata:
  7. name: nginx1
  8. spec:
  9. replicas: 2
  10. template:
  11. metadata:
  12. labels:
  13. name: web
  14. spec:
  15. containers:
  16. - name: nginx
  17. image: nginx
  18. ...

第二步:依靠yml文件运行/删除

  1. ╭─root@node1 ~
  2. ╰─➤ kubectl apply -f nginx.yml
  3. deployment.extensions/nginx1 created
  4. # kubectl delete -f nginx.yml # 删除

第三步:查看pods

  1. ╭─root@node1 ~
  2. ╰─➤ kubectl get pod
  3. NAME READY STATUS RESTARTS AGE
  4. nginx1-99f7df68c-7v5pb 1/1 Running 0 77s
  5. nginx1-99f7df68c-lcvrk 1/1 Running 0 77s

k8s command & args

命令和参数说明:

command、args两项实现覆盖Dockerfile中ENTRYPOINT的功能,具体的command命令代替ENTRYPOINT的命令行,args代表集体的参数。

  • 如果command和args均没有写,那么用Dockerfile的配置。
  • 如果command写了,但args没有写,那么Dockerfile默认的配置会被忽略,执行输入的command(不带任何参数,当然command中可自带参数)。
  • 如果command没写,但args写了,那么Dockerfile中配置的ENTRYPOINT的命令行会被执行,并且将args中填写的参数追加到ENTRYPOINT中。
  • 如果command和args都写了,那么Dockerfile的配置被忽略,执行command并追加上args参数。比如:
  • 另:多命令执行使用sh,-c,[command;command,...]的形式,单条命令的参数填写在具体的command里面

摘自:https://www.cnblogs.com/qiang-cnblog/p/7641423.html


k8s 查看pod的详细yaml文件

  1. ╭─root@node1 ~
  2. ╰─➤ kubectl get po
  3. NAME READY STATUS RESTARTS AGE
  4. pod-secret 0/1 ContainerCreating 0 9m35s
  5. ╭─root@node1 ~
  6. ╰─➤ kubectl get pod pod-secret -o yaml
  7. apiVersion: v1
  8. kind: Pod
  9. metadata:
  10. annotations:
  11. kubectl.kubernetes.io/last-applied-configuration: |
  12. {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"name":"pod-secret","namespace":"default"},"spec":{"containers":[{"command":["/bin/sh","-c","touch test;sleep 60000"],"image":"busybox","imagePullPolicy":"IfNotPresent","name":"busybox","volumeMounts":[{"mountPath":"/tmp","name":"du"}]}],"volumes":[{"name":"du","secret":{"secretName":"mysecret"}}]}}
  13. creationTimestamp: "2019-08-31T01:20:35Z"
  14. name: pod-secret
  15. namespace: default
  16. resourceVersion: "267900"
  17. selfLink: /api/v1/namespaces/default/pods/pod-secret
  18. uid: a222ab7e-cafc-46b3-8a82-8ab1b4fc0599
  19. spec:
  20. containers:
  21. - command:
  22. - /bin/sh
  23. - -c
  24. - touch test;sleep 60000
  25. image: busybox
  26. imagePullPolicy: IfNotPresent
  27. name: busybox
  28. resources: {}
  29. terminationMessagePath: /dev/termination-log
  30. terminationMessagePolicy: File
  31. volumeMounts:
  32. - mountPath: /tmp
  33. name: du
  34. - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
  35. name: default-token-ngn4n
  36. readOnly: true
  37. dnsPolicy: ClusterFirst
  38. enableServiceLinks: true
  39. nodeName: node2
  40. priority: 0
  41. restartPolicy: Always
  42. schedulerName: default-scheduler
  43. securityContext: {}
  44. serviceAccount: default
  45. serviceAccountName: default
  46. terminationGracePeriodSeconds: 30
  47. tolerations:
  48. - effect: NoExecute
  49. key: node.kubernetes.io/not-ready
  50. operator: Exists
  51. tolerationSeconds: 300
  52. - effect: NoExecute
  53. key: node.kubernetes.io/unreachable
  54. operator: Exists
  55. tolerationSeconds: 300
  56. volumes:
  57. - name: du
  58. secret:
  59. defaultMode: 420
  60. secretName: mysecret
  61. - name: default-token-ngn4n
  62. secret:
  63. defaultMode: 420
  64. secretName: default-token-ngn4n
  65. status:
  66. conditions:
  67. - lastProbeTime: null
  68. lastTransitionTime: "2019-08-31T01:26:25Z"
  69. status: "True"
  70. type: Initialized
  71. - lastProbeTime: null
  72. lastTransitionTime: "2019-08-31T01:26:25Z"
  73. message: 'containers with unready status: [busybox]'
  74. reason: ContainersNotReady
  75. status: "False"
  76. type: Ready
  77. - lastProbeTime: null
  78. lastTransitionTime: "2019-08-31T01:26:25Z"
  79. message: 'containers with unready status: [busybox]'
  80. reason: ContainersNotReady
  81. status: "False"
  82. type: ContainersReady
  83. - lastProbeTime: null
  84. lastTransitionTime: "2019-08-31T01:26:24Z"
  85. status: "True"
  86. type: PodScheduled
  87. containerStatuses:
  88. - image: busybox
  89. imageID: ""
  90. lastState: {}
  91. name: busybox
  92. ready: false
  93. restartCount: 0
  94. state:
  95. waiting:
  96. reason: ContainerCreating
  97. hostIP: 192.168.137.4
  98. phase: Pending
  99. qosClass: BestEffort
  100. startTime: "2019-08-31T01:26:25Z"

Kubernetes --(k8s)yml 文件的更多相关文章

  1. ubuntu16.04 docker kubernetes(k8s) istio 安装

    版本: docker: 19.03.5 kubernetes: 1.17.0 istio: 1.4.3 步骤一:给ubuntu换源 https://www.cnblogs.com/lfri/p/106 ...

  2. Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

    背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...

  3. Centos7安装Kubernetes k8s v1.16.0 国内环境

    一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...

  4. 【葵花宝典】lvs+keepalived部署kubernetes(k8s)高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  5. 5.基于二进制部署kubernetes(k8s)集群

    1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...

  6. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    ❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...

  7. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...

  8. Docker Kubernetes(K8s)简介

    入职了新公司,使用了Docker和K8s,需要有一个基础的了解,对网络上相关信息进行了简单总结. 一Docker 1简介: Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件,就 ...

  9. Kubernetes(k8s) docker集群搭建

    原文地址:https://blog.csdn.net/real_myth/article/details/78719244 一.Kubernetes系列之介绍篇   •Kubernetes介绍 1.背 ...

随机推荐

  1. Sqoop(一)安装及基本使用

    Sqoop:     1.sqoop从数据库中导入数据到HDFS     2.SQOOP从数据库导入数据到hive     3.sqoop从hive中将数据导出到数据库   sqoop底层还是执行的m ...

  2. MySQL中Exists和In的使用

    Exists关键字: exists表示存在,是对外表做loop循环,每次loop循环再对内表(子查询)进行查询,那么因为对内表的查询使用的索引(内表效率高,故可用大表),而外表有多大都需要遍历,不可避 ...

  3. spring cache 学习 —— @Cacheable 使用详解

    1. 功能说明 @Cacheable 注解在方法上,表示该方法的返回结果是可以缓存的.也就是说,该方法的返回结果会放在缓存中,以便于以后使用相同的参数调用该方法时,会返回缓存中的值,而不会实际执行该方 ...

  4. python virtualenv 基本使用

    下载 pip install virtualenv 校验是否成功 virtualenv --version 使用 创建env环境 要写一个新项目,使用env先创建环境 cd xx\xx\xx\ # 进 ...

  5. 剑指offer 面试题9:用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部.pop() -- 从队列首部移 ...

  6. LeetCode222 判断是否为完全二叉树并求节点个数

    给出一个完全二叉树,求出该树的节点个数. 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底 ...

  7. Openstack neutron 网络服务 (七)

    引用: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/common/get-started-networking.html neut ...

  8. ORA-12560错误

    ora-12560错误是一个经典错误之一 下面我们分析一下这个错误: 产生这个错误的原因是什么呢? 1.oracle服务没有启动 Linux下查看$ps -ef | grep ora_ windows ...

  9. ctfshow—web—web签到题

    打开靶机,发现只有一句话 查看源码 发现一段字符串,猜是base64加密 拿到flag

  10. h5-video,视频在微信里变形、有黑边

    如这种情况: 微信可谓是video标签的重灾区,如果你兼容了安卓的微信,那么在其他浏览器一般也没问题了除了个别(IE:你们看我干吗?). 解决方案: <video src="video ...