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: #必选,元数据 ...
随机推荐
- cdh 安装调研
解决:No module named site http://blog.csdn.net/amgang/article/details/7030642 因为安装greenplum导致yum报如下错误: ...
- Piggy-Bank 完全背包
来源hdu1114 Problem Description Before ACM can do anything, a budget must be prepared and the necessar ...
- template.js artTemplate 简洁语法官网下载不了 template.js artTemplate 新下载地址
参考:https://blog.csdn.net/tavatimsa/article/details/82019792
- 关于 ubuntu 下 防火墙 ufw的使用
ufw 是 iptables 的一个语法糖.详细介绍
- rails 杂记 - erb 中的 form_helper
原文 1. form_tag 1) 基础 Form <%= form_tag do %> Form contents <% end %> 生成 html <form ac ...
- 9 ArcGIS Server 性能优化
1.系统性能影响因子 地图.服务类型.数据源.客户端技术.CPU.数据结构.网络.内存.存储.部署.架构.服务接口.SDE等. 2.ArcGIS Server性能优化 数据结构与数据源:数据结构(矢量 ...
- ArcGIS 10.3 AddIN编译旧版本项目问题
ArcGIS 10.1的AddIN项目,后来ArcGIS版本升级为10.3 AddIN项目想做一些细节调整,结果出生成时没有生成esriaddin文件,ArcMap中AddIn Manager中也没有 ...
- 01day
01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑. (运行速度飞机) 内存:临时存储数据. 8g,16g, (高铁) 1,成本高. 2,断电即消 ...
- [No0000197]Windows用户都应该知道的运行命令
通过"运行"命令,运行Windows丰富工具的方法.如果您知道工具或任务的相应"运行"命令,那么您就知道访问所述工具或任务的最快方法. 以下是我们最喜欢的Run ...
- eclipse maven项目下载jar包失败解决办法
1.找到我们的本地maven仓库目录 我的是 H:\Java\maven\Repository 2.搜索出该目录下的*lastUpdated.properties文件并删除,如下图所示,可以通过模糊搜 ...