k8s-PODs with YAML
YAML in Kubernetes
- k8s definition file always contains 4 top level fields.(apiVersion,kind,metadata,spec)
pod-definition.yml
1 | apiVersion: |
apiVersion:
Kind Version POD v1 Service v1 ReplicaSet apps/v1 Deployment apps/v1 deploy POD时使用v1
kind:
- 类型:Pod,Service,ReplicaSet,Deployment
metadata:
The metadata is data about the object like its name,labels etc.
name
: 用来指定pod的名字1
2
3
4
5metadata:
name: myapp-pod
labels:
app: myapp
type: front-endmetadata里面是字典类型。
spec:
spec里面contianers下面是一个list,list里面有不同字段(是字典)
1
2
3
4spec:
containers:
- name: nginx-container
image: nginx
启动pods
kubectl apply -f pod-definition.yml
kubectl get pods
kubectl describe pod myapp-pod
Example
pod.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: nginx
# tier:层
tier: frontend
spec:
containers:
- name: nginx
image: nginx
- name: busybox
image: busybox
pod-definition.yml
1
2
3
4
5
6
7
8
9
10
11
12
13apiVersion: v1
kind: Pod
metadata:
name: postgres
labels:
tier: db-tier
spec:
containers:
- name: postgres
image: postgres
env:
- name: POSTGRES_PASSWORD
value: mysecretpassword
启动pod
kubectl apply -f pod.yaml
使用vscode编辑yaml
在settting.json中加入
1
2
3
4
5{
"yaml.schemas": {
"kubernetes": "*.yaml"
}
}
删除pod
kubectl delete pod myapp-pod
编辑pod
kubectl edit pod myapp-pod