美文网首页
第4章 YAML配置文件管理资源

第4章 YAML配置文件管理资源

作者: 六弦极品 | 来源:发表于2019-06-03 09:33 被阅读0次

一. YAML文件格式说明

YAML 是一种简洁的非标记语言。
语法格式:
• 缩进表示层级关系
• 不支持制表符“tab”缩进,使用空格缩进
• 通常开头缩进 2 个空格
• 字符后缩进 1 个空格,如冒号、逗号等
• “---” 表示YAML格式,一个文件的开始
• “#”注释

二. YAML文件创建资源对象

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

1. YAML配置文件结构

yaml结构.png

2. 创建deployment控制器及pod

创建一个nginx-deployment控制器,运行三个pod

# cat nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.15.4
        ports:
        - containerPort: 80

# kubectl create -f nginx-deployment.yaml
# kubectl get pod
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-d55b94fd-7ngvd   1/1     Running   0          2m36s
nginx-deployment-d55b94fd-x99bf   1/1     Running   0          2m36s
nginx-deployment-d55b94fd-ztwq5   1/1     Running   0          2m36s

3. 创建service发布端口

创建一个nginx-service service发布端口:

# cat nginx-service.yaml 
apiVersion: v1 
kind: Service
metadata:
  name: nginx-service 
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector: 
    app: nginx

# kubectl get svc
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.0.0.1     <none>        443/TCP        3d23h
nginx-service   NodePort    10.0.0.31    <none>        80:39694/TCP   6s

浏览器访问http://10.40.6.210:39694/  任意一个node节点IP加上暴露端口即可访问

其实可以将调度器和service 放到同一个yaml文件,用“---”隔开,完成一个应用的创建和发布

# cat nginx-deployment_service.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.15.4
        ports:
        - containerPort: 80
---
apiVersion: v1 
kind: Service
metadata:
  name: nginx-service 
  labels:
    app: nginx
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector: 
    app: nginx

# kubectl create -f nginx-deployment_service.yaml 
deployment.apps/nginx-deployment created
service/nginx-service created

三. 如何记住yaml配置文件字段

• 用run命令生成,--dry-run 测试命令是否成功,不会创建资源, 然后将不要的字段删除或调整相应字段值

# kubectl run --image=nginx my-deploy -o yaml --dry-run
# kubectl run nginx --image=nginx:1.15.4 --port=80 --replicas=3 --dry-run -o yaml > my-deploy.yaml

• 用get命令导出现有资源的yaml配置文件:
kubectl get deploy/nginx-deployment --export -o yaml > my-deploy.yaml
• Pod容器的字段拼写忘记了,查看字段说明及使用
kubectl explain pods.spec.containers

相关文章

  • R 包学习-yaml

    yaml 配置文件管理包 http://blog.fens.me/r-yaml 前言 YAML是专门用来写配置文件...

  • 第4章 YAML配置文件管理资源

    一. YAML文件格式说明 YAML 是一种简洁的非标记语言。语法格式:• 缩进表示层级关系• 不支持制表符“ta...

  • k8s-容器资源管理

    k8s 容器资源管理 1. 获取api 2. 创建 nginx-deployment.yaml 配置文件 3. ...

  • Kubectl 常用命令

    常用命令 YAML配置文件管理对象

  • Mongodb YAML参数详解

    mongodb3.x版本后就是要yaml语法格式的配置文件,下面是yaml配置文件格式如下: 官方yaml配置文件...

  • k8s指定节点发布

    1.配置文件deployment.yaml: 2.配置文件values.yaml:

  • YAML语言

    YAML经常被用于编写配置文件。越来越多的工具使用YAML语言作为配置文件语言。YAML格式参考YAML语言语法规...

  • K8S Yaml 文件

    K8S 里所有的资源或者配置文件都可以用 yaml 或 Json 定义。YAML 是一个 JSON/ 的超集,任何...

  • 轻松flutter 之 配置资源 | 主题颜色

    第一部分 配置资源 flutter在统一的资源配置文件pubspec.yaml(根目录)中配置资源. pubspe...

  • Kubernetes 环境下部署单节点 Redis

    配置文件 假设把配置文件放在目录 ./redis 下 namespace.yaml config.yaml pvc...

网友评论

      本文标题:第4章 YAML配置文件管理资源

      本文链接:https://www.haomeiwen.com/subject/iupqxctx.html