Kubernetes资源创建yml语法
前言
在是用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来创建。
Kubernetes资源创建yml语法的更多相关文章
- kubernetes系列06—kubernetes资源清单定义入门
本文收录在容器技术学习系列文章总目录 1.认识kubernetes资源 1.1 常用资源/对象 workload工作负载型资源:pod,ReplicaSet,Deployment,StatefulSe ...
- 第15章: Prometheus监控Kubernetes资源与应用
Prometheus监控Kubernetes资源与应用 目录 1 监控方案 2 2 监控指标 4 3 实现思路 4 4 在K8S中部署Prometheus 4 5 在K8S中部署Grafana与可视化 ...
- pod(一):Kubernetes(k8s)创建pod的两种方式
目录 一.系统环境 二.前言 三.pod 四.创建pod 4.1 环境介绍 4.2 使用命令行的方式创建pod 4.2.1 创建最简单的pod 4.2.2 创建pod,指定镜像下载策略 4.2.3 创 ...
- 使用kubesql进行kubernetes资源查询
kubesql kubesql(https://github.com/xuxinkun/kubesql)是我最近开发的一个使用sql查询kubernetes资源的工具.诸如node,pod等kuber ...
- 新手学习FFmpeg - 如何编写Kubernetes资源文件
Kubernetes API的使用方式 Kubernetes API属于声明式API编程, 它和常用的命令式编程有一些区别. 通俗的说,命令式编程是第一人称,我要做什么,我要怎么做. 操作系统最喜欢这 ...
- 深入理解 Kubernetes 资源限制:CPU
原文地址:https://www.yangcs.net/posts/understanding-resource-limits-in-kubernetes-cpu-time/ 在关于 Kubernet ...
- (四)Kubernetes 资源清单定义
Kubernetes常用资源对象 依据资源的主要功能作为分类标准,Kubernetes的API对象大体可分为五个类别,如下: 类型 名称 工作负载(Workload) Pod.ReplicaSet.D ...
- 深入理解Kubernetes资源限制:CPU
写在前面 在上一篇关于Kubernetes资源限制的文章我们讨论了如何通过ResourceRequirements设置Pod中容器内存限制,以及容器运行时是如何利用Linux Cgroups实现这些限 ...
- 深入理解Kubernetes资源限制:内存
写在前面 当我开始大范围使用Kubernetes的时候,我开始考虑一个我做实验时没有遇到的问题:当集群里的节点没有足够资源的时候,Pod会卡在Pending状态.你是没有办法给节点增加CPU或者内存的 ...
随机推荐
- android 关于setWidth()和setHeight()没反应的问题
在android开发过程中,对于控件的高度,宽度,虽然在xml中用android:layout_height="match_parent"设置了 高度(match_parent ...
- Python 实现字符串转换成列表 实现str转换list
其中Python strip() 方法用于移除字符串头尾指定的字符 split()就是将一个字符串分裂成多个字符串组成的列表 >>> image ='1.jsp,2.jsp,3.js ...
- Linux 连续运行多条命令
每条命令使用";"隔开.则不管前边的命令运行成功与否都会继续运行下一条命令 这里,有益将第二条命令中的echo多写了一个o.命令运行出错,但并不影响兴许命令的运行 能够这么想,假设 ...
- Source Insight 项目简单使用说明
SI(Source Insight) 是我一直写代码的好伙伴, 相信这强大的软件也是广大程序猿编写软件的利器. 正所谓" 工欲善其事, 必先利其器", 我们要学会利用这款软件. 先 ...
- JS高程3:BOM-window对象
全局作用域 BOM的核心就是window对象,他是浏览器的一个实例. 它既是JS访问浏览器窗口的接口,又是ECMAScript中的global对象. 在全局作用域中,global对象,this对象,w ...
- 分时段显示不同的提示的网页JS特效代码
脚本说明: 把如下代码加入body区域中 <SCRIPT> today=new Date(); var day; var date; var hello; var wel; hour=ne ...
- ORACLE修改列名与列类型
--修改列名 alter table 表名 rename column 旧列名 to 新列名; --修改列类型 )); 删除表的一列: alter table 表名 drop column 列名 给表 ...
- shell script 在if 的判断条件正则表达式=~中引号问题
今天在脚本里运行if判断的时候,总是进不了对应的分支,检查正则表达式也没有错误.单独拿到shell里面执行还是显示没有匹配.比较奇怪,就搜了下,才发现是在=~ 后面的正则表达式上不能加上引号,而且以点 ...
- jQuery 实战读书笔记之第四章:使用特性、属性和数据
使用属性 /* 每个元素都有一或多个特性,,这些特性的用途是给出相应元素或其内容的附加信息.(出自 JavaScript 高级程序设计) */ /* 特性是固有的 JavaScript 对象 属性指的 ...
- mongodb数据库安装与卸载
此处以centos下monggodb3.4版本安装为例,可参考官网安装教程 步骤如下: 1.配置mongodb ym源 vi /etc/yum.repos.d/mongodb-org-3.4.repo ...