Docker Kubernetes YAML文件常用指令
YAML文件常用指令
配置文件说明:
- 定义配置时,指定最新稳定版API(当前为v1)。
- 配置文件应该存储在集群之外的版本控制仓库中。如果需要,可以快速回滚配置、重新创建和恢复。
- 应该使用YAML格式编写配置文件,而不是JSON。尽管这些格式都可以使用,但YAML对用户更加友好。
- 可以将相关对象组合成单个文件,通常会更容易管理。
- 不要没必要的指定默认值,简单和最小配置减少错误。
- 在注释中说明一个对象描述更好维护。
- YAML是一种标记语言很直观的数据序列化格式,可读性高。类似于XML数据描述语言,语法比XML简单的很多。
- YAML数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号括起来,hash用花括号括起来。

YAML文件格式注意事项:
- 1. 不支持制表符tab键缩进,需要使用空格缩进
- 2. 通常开头缩进2个空格
- 3. 字符后缩进1个空格,
- 4. “---” 表示YAML格式,一个文件的开始
- 5. “#”注释
- # 指定api版本
- apiVersion:
- # 指定需要创建的资源对象
- kind:
- # 源数据、可以写name,命名空间,对象标签
- metadata:
- # 指定对象名称
- name:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
- # 描述资源相关信息
- spec:
- # 指定pod 副本数,默认1
- replicas:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
- # 资源标签选择器
- selector:
- # 描述资源具体信息
- template:
- # 匹配标签字段
- matchLabels:
- # 指定pod标签value:key
- labels:
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
- # 指定容器信息
- containers:
- # 指定容器名称
- - name:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.9
ports:
- containerPort: 80
- # 指定镜像名称
- image:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.9
ports:
- containerPort: 80
- # 暴露容器端口
- ports:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.9
ports:
- containerPort: 80
- # 指定暴露容器端口
- - containerPort:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.9
ports:
- containerPort: 80
- # 添加环境变量
- env:
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
os: centos
spec:
containers:
- name: hello
image: centos:6
env:
# 变量key
- name: Test
# 变量value
value: ""
- # 启动容器后执行命令
- command:
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
os: centos
spec:
containers:
- name: hello
image: centos:6
command: ["bash","-c","while true;do date;sleep 1;done"]
- # 重启策略 可添加(Always,OnFailure,Never)
- restartPolicy:
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
os: centos
spec:
containers:
- name: hello
image: centos:6
restartPolicy: OnFailure
- # 健康检查模式(httpGet、exec、tcpSocket)
- livenessProbe:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
livenessProbe:
# 健康检查模式
httpGet:
# 指定检查目录
path: /index.html
# 访问端口
port: 80
- # 容器内管理volume数据卷
- volumeMounts:
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
test: centos
spec:
containers:
- name: hello-read
image: centos:6
# 容器内管理数据卷
volumeMounts:
# 数据卷名称
- name: data
# 容器数据卷路径
mountPath: /data
# 数据卷
volumes:
# 数据卷名称
- name: data
# 数据宿主机卷路径
hostPath:
# 指定宿主机数据卷路径
path: /data
- # 宿主级管理volume数据卷管理
- volumes:
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
test: centos
spec:
containers:
- name: hello-read
image: centos:6
# 容器内管理数据卷
volumeMounts:
# 数据卷名称
- name: data
# 容器数据卷路径
mountPath: /data
# 数据卷
volumes:
# 数据卷名称
- name: data
# 数据宿主机卷路径
hostPath:
# 指定宿主机数据卷路径
path: /data
- # hsotip监听IP,可通过哪些宿主级ip访问
- hostIP:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod2
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
# hostport管理
ports:
# 指定http
- name: http
# 指定端口
containerPort: 80
# hsotip监听IP,可通过哪些宿主级ip访问
hostIP: 0.0.0.0
# 宿主级暴露端口,它会映射到containerport的容器端口
hostPort: 89
# 指定协议类型
protocol: TCP
- # 宿主级暴露端口,它会映射到containerport的容器端口
- hostPort:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod2
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
# hostport管理
ports:
# 指定http
- name: http
# 指定端口
containerPort: 80
# hsotip监听IP,可通过哪些宿主级ip访问
hostIP: 0.0.0.0
# 宿主级暴露端口,它会映射到containerport的容器端口
hostPort: 89
# 指定协议类型
protocol: TCP
- # 暴露端口的协议类型
- protocol:
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod2
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
# hostport管理
ports:
# 指定http
- name: http
# 指定端口
containerPort: 80
# hsotip监听IP,可通过哪些宿主级ip访问
hostIP: 0.0.0.0
# 宿主级暴露端口,它会映射到containerport的容器端口
hostPort: 89
# 指定协议类型
protocol: TCP
- # 固定IP地址
- clusterIP:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 888
targetPort: 80
clusterIP: "10.10.10.11"
- # 服务类型
- type:
apiVersion: v1
kind: Service
metadata:
name: nginx-service2
labels:
app: nginx
spec:
selector:
app: nginx
ports:
- name: http
port: 8080
targetPort: 80
# 服务类型
type: NodePort
- # node节点创建socker的暴露端口,默认30000~32767
- nodePort:
apiVersion: v1
kind: Service
metadata:
name: nginx-service2
labels:
app: nginx
spec:
selector:
app: nginx
ports:
- name: http
port: 8080
targetPort: 80
# 服务类型
type: NodePort
Docker Kubernetes YAML文件常用指令的更多相关文章
- Kubernetes YAML 文件全字段详解
Kubernetes YAML 文件全字段详解 Deployment yaml 其中主要参数都在podTemplate 中,DaemonSet StatefulSet 中的pod部分一样. apiVe ...
- Kubernetes——YAML文件
kubernetes——yaml文件的编写yaml文件的结尾后缀名.yaml或者.yml都能够识别.yaml文件就像脚本一样,可以放在任意的位置.编写yaml文件需要用到的帮助手册的查看: kubec ...
- Linux文件常用指令
目录 Linux文件常用指令 1.pwd 显示当前目录 2.cd 切换目录 3.mkdir 创建目录 4.touch 修改或创建文件 5.ls 显示目录下的内容 6.cat 查看文件信息 7.echo ...
- 入门Kubernetes - YAML文件
前言 前篇文章中简单了解到如何把.Net Core 程序部署到k8s中,过程中使用了多个*.yaml文件,那么这些文件的格式及含义.语法是如何的呢? 接下来,进一步了解学习 一.YAML介绍: 1.简 ...
- [Kubernetes]yaml文件详解
应前一段时间夸下的海口:[Kubernetes]如何使用yaml文件使得可以向外暴露服务,说过要写一篇关于yaml文件详解的文章出来的,今天来总结一下.yaml文件用在很多地方,但是这里以介绍在Kub ...
- Docker学习笔记_Dockerfile常用指令
Dockerfile常用指令
- 【Docker】docker 入门以及一些常用指令
概述 Docker是一款针对程序开发人员和系统管理员来开发.部署.运行应用的一款虚拟化平台.Docker 可以让你像使用集装箱一样快速的组合成应用,并且可以像运输标准集装箱一样,尽可能的屏蔽代码层面的 ...
- docker compose yml 文件常用字段简介
常用参数: version # 指定 compose 文件的版本 services # 定义所有的 service 信息, services 下面的第一级别的 key 既是一个 service 的名称 ...
- Kubernetes (yaml 文件详解)
# yaml格式的pod定义文件完整内容:apiVersion: v1 #必选,版本号,例如v1kind: Pod #必选,Podmetadata: #必选,元数据 ...
随机推荐
- apache 2.4.23 只能本地访问,其他用户不能访问,提示You don't have permission to access
这个版本的httpd.conf的配置方法跟原版本的设置不一样了. 需要在目录安全配置中 修改为 Require all granted 比如 把Require local 修改为Require al ...
- Windows下使用VS2017搭建FLTK开发环境
环境介绍 系统:win10 64位 IDE:VS 2017 Community FLTK版本:1.3.4-2 下载FLTK 截止到本文编写,FLTK的最新稳定版本是1.3.4-2.我们从官网(www. ...
- 剑指offer题目java实现
Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 package Problem2; public class SingletonClass { /* * ...
- flask将日志写入日志文件
import logging logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别 filename='log_new.log', # 将日志写入lo ...
- [Codeforces Round #221 (Div. 1)][D. Tree and Queries]
题目链接:375D - Tree and Queries 题目大意:给你一个有n个点的树,每个点都有其对应的颜色,给出m次询问(v,k),问v的子树中有多少种颜色至少出现k次 题解:先对所有的询问进行 ...
- sublime3 快速生成html头文件
通过安装emmt插件老师来实现该功能(https://github.com/sergeche/emmet-sublime#readme) 1. 下载好后解压到文件夹: 2. 打开TS3,点击perfe ...
- mac shell 获取ip,自动启动文件http服务
因为工作原因,时常有文件传输需求. rz.nc.rsync都用过,各有各的好处. 但相对的,向别处推文件时总有各种麻烦,尤其是在给同事发送文件时. 然后就想到了提供http服务. 在环境变量中定义别名 ...
- aes 和 Md5 分析
高级加密标准(英语:Advanced Encryption Standard,缩写:AES). 密码的设计力求满足以下3条标准: ① 抵抗所有已知的攻击. ② 在多个平台上速度快,编码紧凑. ③ 设计 ...
- JavaScript基础知识(数据类型)
数据类型 布尔:true/fasle console.log(typeof true);// "boolean" Number : true -->1 false --> ...
- CentOS使用systemctl daemon-reload报错Error getting authority: Error initializing authority: Error calling StartServiceByName for org.freedesktop.PolicyKit1: Timeout was reached (g-io-error-quark, 24)解决办法
CentOS修改了系统启动文件后需要重载报错 systemctl daemon-reload Error getting authority: Error initializing authority ...