前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​kubernetes部署筹备

​kubernetes部署筹备

作者头像
PayneWu
发布2020-12-18 09:45:50
5030
发布2020-12-18 09:45:50
举报
文章被收录于专栏:积跬Coder积跬Coder

YAML文件概述

K8s集群文件中对资源管理和资源对象编排部署都可以通过声明样式yaml,文件来解决,也就是说可以把需要对资源对象操作编辑到yaml,文件中。

我们称之为资源清单资源清单文件通过kubectl命令直接使用资源清单文件就可以实现对大量资源对象进行编排部署

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系,缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • ‘#’表示注释
  • ---表示新的yaml文件的开始

数据类型

YAML 支持以下几种数据类型:

  • 对象: 键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组: 一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars): 单个的、不可再分的值

常量

常量是最基本的,不可再分的值,包括:

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

引用

& 锚点和 * 别名,可以用来引用: & 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。

代码语言:javascript
复制
defaults: &defaults
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  <<: *defaults

test:
  database: myapp_test
  <<: *defaults

---相当于
defaults:
  adapter:  postgres
  host:     localhost

development:
  database: myapp_development
  adapter:  postgres
  host:     localhost

test:
  database: myapp_test
  adapter:  postgres
  host:     localhost

kubernetes中yaml组成部分

代码语言:javascript
复制
apiVersion: v1                                # API版本 可使用命令kubeclt api--verison查看
kind: ReplicationController        # 资源类型 - 副本控制器RC
metadata:                                            # 资源元数据
  name: mysql                                    #     - RC的名称(全局唯一),符合目标的Pod拥有此标签
spec:                                                    # 资源的规格(RC的相关属性的定义)
  replicas: 1                                    # 副本的期望数量
  selector:                                        # 标签选择器
    app: mysql                
 # *********************************************
  template:                                        # Pod 模版
    metadata:                        
      name: mysql
      labels:                                    # 标签        Pod 副本拥有的标签,对应RC的Selector
        app: mysql
    spec:                                            # Pod规格
      containers:                            # 容器的配置
        - name: mysql                    # 容器名称
          image: mysql                # 容器镜像(对应的Docker images)
          ports:
            - containerPort: 3306        # 容器引用监听的端口号
          env:                                            # 环境配置
            - name: MYSQL_ROOT_PASSWORD    
              value: "123456"


  ---
apiVersion: v1
kind: Service                                 #  资源类型 服务
metadata:
  name: mysql            
spec:
  selector:
    app: mysql
  ports:
  - port: 3306
  • 控制器部分
  • 被控制的对象
  • RC

快速编写yaml文件

Part 1:使用命令生成yaml文件

代码语言:javascript
复制
# kubectl create kubectl create deployment web --image=nginx -o yaml --dry-run# -o 使用yaml格式展示# -dry-run 尝试运行,并不会真正运行# 保存至myweb.yamlkubectl create deployment web --image=nginx -o yaml --dry-run > myweb.yaml
  • kubectl create deployment web —image=nginx -o yaml —dry-run运行效果如下⬇️:

Part 2: 使用命令导出yaml文件

代码语言:javascript
复制
kubectl get
kubectl get deploy # 查看部署kubectl get deploy nginx -o yaml --export > myweb.yaml
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 积跬Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • YAML文件概述
    • 基本语法
      • 数据类型
        • 常量
          • 引用
          • kubernetes中yaml组成部分
          • 快速编写yaml文件
            • Part 1:使用命令生成yaml文件
              • Part 2: 使用命令导出yaml文件
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档