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: "123456"

#启动容器后执行命令
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值