Kubernetes --(k8s)yml 文件
认识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 文件的更多相关文章
- 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 ...
- Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)
背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...
- Centos7安装Kubernetes k8s v1.16.0 国内环境
一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...
- 【葵花宝典】lvs+keepalived部署kubernetes(k8s)高可用集群
一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...
- 5.基于二进制部署kubernetes(k8s)集群
1 kubernetes组件 1.1 Kubernetes 集群图 官网集群架构图 1.2 组件及功能 1.2.1 控制组件(Control Plane Components) 控制组件对集群做出全局 ...
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...
- Docker Kubernetes(K8s)简介
入职了新公司,使用了Docker和K8s,需要有一个基础的了解,对网络上相关信息进行了简单总结. 一Docker 1简介: Docker 将应用程序与该程序的依赖,打包在一个文件里面.运行这个文件,就 ...
- Kubernetes(k8s) docker集群搭建
原文地址:https://blog.csdn.net/real_myth/article/details/78719244 一.Kubernetes系列之介绍篇 •Kubernetes介绍 1.背 ...
随机推荐
- JVM笔记——类加载
1.在java代码中,类型(如class enum interface)的加载.连接.初始化过程都是在程序运行期完成的.这个特性,使得本为静态语言的java,拥有了动态语言的某些特征 加载:查找并加载 ...
- 漫画 | 小公司卧薪尝胆三年,意外拿到美团offer
今天给大家分享一篇,非科班出生的野生前端从业者的励志成长故事,故事的主人公王大拿(化名),在小公司打杂三年后,意外拿到了美团的offer,成功进阶大厂,跳槽到了美团的核心外卖事业部. 事故主人公:王大 ...
- 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)
微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...
- JS内存
内存是用来存什么的 通俗的来说呢,就是用来存 var let function const 声明的变量. 内存的大小 与操作系统有关,64位1.4G 32位0.7G. 为啥内存大小要这么设计,为啥不是 ...
- vue element 表单验证不通过,滚动到固对应位置
我们在使用elementIUI实现表单验证,内容比较多的时候,提示内容会被遮挡,这时候用户不清楚什么情况,还会连续点击提交按钮.这个时候需求来啦:我们需要在表单验证不通过的时候,页面滚动到对应的位置. ...
- 在md里画流程图
可以使用名为mermaid的代码块,即 ```mermaid``` 需要md解析器能解析mermaid mermaid使用详情参见
- Mirai qq机器人 c++版sdk(即用c++写mirai)
Mirai机器人c++版 前言 类似教程 本文git,gitee地址 c++开发mirai 原理 大概流程 实现 如何使用 注意事项 常见错误 前言 改分支版本以及过时,暂时不再维护 请看最新版kot ...
- 关于 C# DataSet.ReadXml 无法获取Xml数据的问题解析
首先这次遇到问题的是,C# Winform 项目中新建的数据集 IDE 是 VS2013 调用如下: private void Form1_Load(object sender, EventArgs ...
- dotnet高性能buffer
1 前言 我曾经写过<杂谈.netcore的Buffer相关新类型>的博客,简单介绍过BinaryPrimitives.Span<>,Memory<>,ArrayP ...
- JD6621快速充电协议芯片,带有PPS 控制器的USB-PD3.0
描述 JD6621是高度集成的USB供电(PD)控制器,支持USB PD 3.0 ,该USB PD 3.0 具有针对USBType-C下游接口(源)设计的可编程电源(PPS)规范.它监视CC引脚以检测 ...