上次说了在Kubernetes1.15.1上安全 Dashboard,也接触到了yaml文件,就是通过github下载dashboard.yaml安装dashboard。许多了解可能对yaml不是太熟悉,开发的接触最多的就是配置文件properties,但是在springboot官方也开始建议使用yml来进行配置。.
yml是什么鬼,今天我带你们来一探究竟。 YAML(Yet Another Markup Language)(发音 /ˈjæməl/ ) 一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。
https://yaml.org/
1.大小写敏感。
2.使用缩进表示层级关系。
3.缩进时不允许使用Tab键,只允许使用空格。(可以通过编译器将tab键设置成2个空格或者4个空格)
4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。(使用一个空格缩进,都使用一个。使用二个空格缩进,都使用二个),建议还是2个空格,这样好看些。
5.# 表示注释,从这个字符一直到行尾,都会被解析器忽略。
6.破折号后面跟一个空格(a dash and space)表示列表
7.用冒号和空格表示键值对 key: value
有yaml 和yml 到底他们之前有什么区别?我来解答语法格式完全一样。就是文件名不一样,yaml是Kubernetes的配置文件。
普通的值(数字1234567890,字符串"ssss"/null,布尔true/false )
1. k: v:字面直接来写;2. 字符串默认不用加上单引号或者双引号;
http://www.bejson.com/validators/yaml/ 在线yml校验器
第一行的---是分隔符,是可选的,在单一文件中,可用连续三个连字号---区分多个文件。这里我们可以看到,我们有两个键:friends,他们对应的值分别是:lastName: zhangsan 和 age: 20。
---
friends:
lastName: zhangsan
age: 20
针对这个json格式或许你对上面的 JSON 文件更熟悉,但是不得不说json是不是更麻烦些
{
"friends":: {
"lastName": "zhangsan",
"age":20
}
}
说白了就是数组。用- 值表示数组中的一个元素。
pets:
- pig
- cat
- dog
对应的json格式
{
"pets": ["pig","cat", "dog"]
}
来个混合的看看json和yml的对比
person:
lastName: liming
age: 34
boss: false
birth: 2019/08/03
maps: {k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小狗
age: 10
对应的json格式
{
"person": {
"lastName": "liming",
"age": 34,
"boss": false,
"birth": "2019/08/03",
"maps": {
"k1": "v1",
"k2": 12
},
"lists": [
"lisi",
"zhaoliu"
],
"dog": {
"name": "小狗",
"age": 10
}
}
}
通过上边的对比很明显,yml要比json轻量很多。缩进就搞定了,不需要复杂的对照的大括号,中括号,双引号。
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.15
不要直接创建一个pod,要通过Deployment, Job, or StatefulSet.
---
apiVersion: v1
kind: Pod
metadata:
name: first-pod
labels:
app: bash
tir: backend
spec:
containers:
- name: bash-container
image: docker.io/busybox
command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
kubectl apply -f pod.yaml
kubectl describe first-pod
kubectl get pods
查看token
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/admin/{print $1}')
登录dashboard 输入token:https://192.168.86.101:32500/#!/login
查看到刚才通过命令的方式创建
查看容器详情:这个跟:kubectl describe first-pod 展示的内容是一致的
复制yaml文件格式进去
创建中
创建成功
PS:这次主要让大家了解yaml,也通过两种方式创建了pod。熟悉yaml的两种方式Map和List。下次一起pod,重点还是通过官方api来学习。看一手资料。