认识yml文件

yaml文件语法

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

查找资源时用到的命令

╭─root@node1 ~
╰─➤ kubectl explain deploy
KIND: Deployment
VERSION: extensions/v1beta1
...
# kubectl api-resources
# kubectl explain deploy.metadata
# kubectl explain deploy.spec
# kubectl explain deploy.spec.template
# kubectl explain deploy.spec.template.spec
# kubectl explain deploy.spec.template.metadata

使用yml文件部署

第一步:编写yml文件

╭─root@node1 ~
╰─➤ vim nginx.yml
...
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx1
spec:
replicas: 2
template:
metadata:
labels:
name: web
spec:
containers:
- name: nginx
image: nginx
...

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

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

第三步:查看pods

╭─root@node1 ~
╰─➤ kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx1-99f7df68c-7v5pb 1/1 Running 0 77s
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文件

╭─root@node1 ~
╰─➤ kubectl get po
NAME READY STATUS RESTARTS AGE
pod-secret 0/1 ContainerCreating 0 9m35s ╭─root@node1 ~
╰─➤ kubectl get pod pod-secret -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"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"}}]}}
creationTimestamp: "2019-08-31T01:20:35Z"
name: pod-secret
namespace: default
resourceVersion: "267900"
selfLink: /api/v1/namespaces/default/pods/pod-secret
uid: a222ab7e-cafc-46b3-8a82-8ab1b4fc0599
spec:
containers:
- command:
- /bin/sh
- -c
- touch test;sleep 60000
image: busybox
imagePullPolicy: IfNotPresent
name: busybox
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /tmp
name: du
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-ngn4n
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
nodeName: node2
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: du
secret:
defaultMode: 420
secretName: mysecret
- name: default-token-ngn4n
secret:
defaultMode: 420
secretName: default-token-ngn4n
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-08-31T01:26:25Z"
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2019-08-31T01:26:25Z"
message: 'containers with unready status: [busybox]'
reason: ContainersNotReady
status: "False"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2019-08-31T01:26:25Z"
message: 'containers with unready status: [busybox]'
reason: ContainersNotReady
status: "False"
type: ContainersReady
- lastProbeTime: null
lastTransitionTime: "2019-08-31T01:26:24Z"
status: "True"
type: PodScheduled
containerStatuses:
- image: busybox
imageID: ""
lastState: {}
name: busybox
ready: false
restartCount: 0
state:
waiting:
reason: ContainerCreating
hostIP: 192.168.137.4
phase: Pending
qosClass: BestEffort
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. 浅析pagehelper分页原理

    原文链接 https://blog.csdn.net/qq_21996541/article/details/79796117 之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大 ...

  2. @component的作用详细介绍

    最近项目要采用spring boot在学习的spring boot 的过程中第一次见到@component注解,特意在网上搜索下,摘录在此方便日后查阅. 1.@controller 控制器(注入服务) ...

  3. Redis 设计与实现 8:五大数据类型之哈希

    哈希对象的编码有两种:ziplist.hashtable. 编码一:ziplist ziplist 已经是我们的老朋友了,它一出现,那肯定就是为了节省内存啦.那么哈希对象是怎么用 ziplist 存储 ...

  4. git基础-远程仓库的使用

    远程仓库的使用 为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库. 远程仓库是指托管在因特网或其他网络中的你的项目的版本库. 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以 ...

  5. spark进行相同列的join时,只留下A与B关系,不要B与A

    一.问题需求: 近期需要做一个商品集合的相关性计算,需要将所有商品进行两两组合笛卡尔积,但spark自带的笛卡尔积会造成过多重复,而且增加join量 假如商品集合里面有: aa   aa bb   b ...

  6. Ubuntu 18.04 使用docker 部署gitlab并且使用自定义端口号

    搭建原因 两个月前我搭建了公司的docker(无法自定义端口,),当初只想着把托管在GitHub的项目代码放在公司的服务器上面,后来忙着修改人脸服务器代码,忘记了,这个月由于领导提的需求比较多,还是托 ...

  7. 九个最容易出错的 Hive sql 详解及使用注意事项

    阅读本文小建议:本文适合细嚼慢咽,不要一目十行,不然会错过很多有价值的细节. 文章首发于公众号:五分钟学大数据 前言 在进行数仓搭建和数据分析时最常用的就是 sql,其语法简洁明了,易于理解,目前大数 ...

  8. Goland 设置代码格式化

    前言 之前一直喜欢 VsCode 的代码自动格式化和其他的一些功能 今天了解到原来 Goland 也有这些功能, 想想也对, 毕竟这么大 正文 Goland设置代码格式化 进入设置,按需选择要使用的, ...

  9. 常用 .gitignore 模板

    前言 每次建项目的时候可以直接复制了,也算是方便自己,以后发现少的会更新 正文 作用 git提交时忽略文件 文件名 .gitignore Python # Byte-compiled / optimi ...

  10. LeetCode557 反转字符串中的单词 III

    给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" 输出: &q ...