前言

在是用kubernetes中,我们对资源的创建大部分都是通过

1
kubelet create -f RESOURCE.yaml

刚开看的时候不免有一些迷茫,看不懂语法,不知道怎么写;今天本文就介绍一下kubernetes construct语法。

Construct语法其实就是由kubelet格式化成API的post data,提交给apiserver,因此这里支持yaml,json两种数据结构的文件。

Pod资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
apiVersion: v1 指定api版本,此值必须在kubectl apiversion中
kind: Pod 指定创建资源的角色/类型
metadata: 资源的元数据/属性
name: test 资源的名字,在同一个namespace中必须唯一
labels: 设定资源的标签
sex: boy 标签以key/value的结构存在
age: 18
spec: #specification of the resource content 指定该资源的内容
restartPolicy: Never 表明改容器仅仅运行一次,默认k8s的策略,在此容器退出后,会立即创建一个相同的容器
volumes: 定义一组挂载设备
- name: volume 定义一个挂载设备的名字
hostPath: /data/www/html 挂载设备类型为hostPath,路径为宿主机下的/data/www/html,这里设备类型支持很多种
containers: 指定资源中的容器
- name: container1 容器的名字
image: “docker.coocla.org/ubuntu:last” 容器使用的镜像地址
volumeMounts:
- mountPath: /mnt 挂载到容器的某个路径下
name: volume 挂载设备的名字,与volumes[*].name 需要对应
livenessProbe: 容器健康监测
httpGet: http形式监测,返回200-399之间,则认为容器正常
path: /health
port: 8080
initialDelaySeconds: 15 表明第一次检测在容器启动后多长时间后开始
timeoutSeconds: 1 检测的超时时间
env: 指定容器中的环境变量
- name: str 变量的名字
value: "hello world” 变量的值
command: ["/bin/bash", "-c"] 覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT
args: ["/bin/echo", "$(str)"] 对应Dockerfile中CMD参数

健康监测还支持另外一种方法:

1
2
3
4
5
6
exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常
command:
- cat
- /tmp/health
initialDelaySeconds: 15
timeoutSeconds: 1

ReplicationController的语法参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 2 指定rc中pod的个数
template: 指定rc中pod的模板,rc中的pod都是按照这个模板来创建的
metadata: 指定rc中pod的元数据,注意这里不需要在指定pod的名字,它由rc复制生成
labels:
app: nginx
spec:
container:
- name: nginx
image: nginx

Service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Service
metadata:
name: nginxsvc
labels:
app: nginx
spec: 指定Service中的内容
ports: 映射列表
- port: 80 service的端口
porotocal: TCP 映射的协议类型,支持TCP/UDP
targetPort: 80 映射到pod的端口
name: www.baidu.com 该映射的名字
selector: 匹配器
port: 80
app: nginx 匹配label中app为nginx,port为80的pod

Secret

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: 0paque 定义secret的类型,这里支持三种类型
password: xxx|base64 以key/value的形式定义,value需要经过base64编码才可以,在secret被挂载到container中后,会以key作为文件名,value的值经过base64解码作为内容,以文件的形式存在于container中
username: xxx|base64
---
type: kubernetes.io/service-account-token 第二种secret类型,用作创建服务账号的token,用作进程间通信的认证
---
type: kubernetes.io/dockercfg 第三种secret类型,用作在创建container,对docker registry的认证
data:
.dockercfg: `cat ~/.dockercfg | base64`

以上为部分资源参数,当然还有更多的参数可以指定,及更多的资源可以通过定义construct来创建。

转载于:https://www.cnblogs.com/davygeek/p/6432154.html

Kubernetes资源创建yml语法相关推荐

  1. Kubernetes资源清单篇:如何创建资源?

    在Kubernetes中所有操作的内容,我们都称为"资源对象",是由API Server基于HTTP/HTTPS接收并响应客户端的操作请求,是一种Restful风格的接口,将各种组 ...

  2. pod:Kubernetes(k8s)创建pod的两种方式

    目录 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 x86_64 ...

  3. Kubernetes 中创建 Pod 时集群中到底发生了些什么?

    想象一下,如果我想将 nginx 部署到 Kubernetes 集群,我可能会在终端中输入类似这样的命令: $ kubectl run --image=nginx --replicas=3 然后回车. ...

  4. java8 自动关闭资源_java9系列第二篇-资源自动关闭的语法增强

    我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...

  5. kubernetes资源--RC和RS

    Replication Controller(RC) RC是K8S中的另一个核心概念,应用托管在K8S后,K8S需要保证应用能够持续运行,这是RC的工作 内容. 主要功能 确保pod数量:RC用来管理 ...

  6. 4 Kubernetes资源-Pod控制器(2)

    4 Kubernetes资源-Pod控制器(2) 4.3 DaemonSet DaemonSet确保Pod在所有Node节点运行一个副本,当有Node节点添加时会自动在新的节点创建Pod.常用于每个N ...

  7. 4 Kubernetes资源-Pod控制器(1)

    4 Kubernetes资源-Pod控制器(1) Kubernetes中Pod分为自主式和控制器管理式: YAML指定类型为Pod的均为自主式,此类Pod退出后不会被创建: YMAL指定类型为Repl ...

  8. 3. Kubernetes资源-概述

    3. Kubernetes资源-概述 3.1 资源概念 Kubernetes中所有内容都抽象为资源,资源实例化之后叫做对象.Kubernetes的资源根据不同的维度可以分为: 工作负载型:Pod.Re ...

  9. SpingBoot yml语法及测试总结yml文件常用的五种方式

    yml语法及测试总结yml文件常用的五种方式 引言 项目介绍 初始化SpringBoot项目 application.properties介绍 yml配置文件基本语法 实际操作测试 引言 今天在开发过 ...

最新文章

  1. 【WP开发问题1】 请确保已为开发人员解锁此设备。有关开发人员解锁的详细信息,...
  2. 【计算机网络(微课版)】第3章 数据链路层 课后习题及答案
  3. 西瓜书学习记录-神经网络(第五章)
  4. hibernate左连接查询时在easyUI的dataGrid中有些行取值为空的解决办法
  5. Mysql yum 安装后,一些重要的文件路径
  6. 使用jQuery获取GridView的数据行的数量
  7. 通过C++的try和catch来捕获SEH异常
  8. 使用mybaits遇见有大写的sql语句错误的bug分析
  9. UniFi AP 5.5.20的基本使用与设置(普通漫游和无缝漫游)
  10. php qrcode二维码应用
  11. 新建xib适配iphone4尺寸的注意
  12. 实验二十三——RPL协议仿真实验
  13. php实现独立模块,poscms独立模块URL规则
  14. 手机如何测量长度?为什么现在很少携带尺子了
  15. 《TPM原理及应用指南》学习 —— TPM历史1
  16. 股票证券名词解释汇总
  17. 都市丽人全方位能力升维,增长驱动力强劲
  18. 妈妈写给热恋中的女儿的信!建议女孩都要看!
  19. C#记录四——浅析LINQ
  20. 求解一维Sod激波管问题

热门文章

  1. 分布式锁的三种实现方式_分布式锁的多种实现方式
  2. oracle 取系统当前年份_Oracle 获取当前日期及日期格式
  3. linux swap分区与内存,虚拟内存和swap分区的关系
  4. html 完全复制div中的内容_LOL手游现在远非完全体,未来还有哪些端游内容会加入手游中?...
  5. 计算机学术硕士课题,硕士学术论文选题的原则分析
  6. 如何判断exe文件是debug还是release编译生成的
  7. java判断线程是否死锁_c++多线程锁 Mutex  自动判断死锁
  8. elementui ts vant冲突_如何解决vue多个ui框架css冲突?
  9. 千兆光纤收发器调整措施
  10. hdmi光端机运用于多媒体信息发布系统案例介绍