3.深入理解kubernetes:k8s的资源清单
1.常用资源workload:pod,deployment,rc,replicaset,DaemonSet,Job,Cronjob服务发现及服务均衡:service,ingress.配置存储相关:volume.csi..configmap,secret,downwardApi集群级资源:namespace,node,role,clusterRole,RoleBinding,Clus...
1.常用资源
workload:pod,deployment,rc,replicaset,DaemonSet,Job,Cronjob
服务发现及服务均衡:service,ingress.
配置存储相关:volume.csi..configmap,secret,downwardApi
集群级资源:namespace,node,role,clusterRole,RoleBinding,ClusterRoleBinding。
元数据资源:HPA,PodTemplate,LimitRange
2.yaml解析
(1)apiVersion:group/version 属于k8s哪个api组或版本,如果group省略,那么表示属于core核心组。使用kubectl api-versions可以显示所有的apiversions。
(2)kind:资源类别
(3)metadata:元数据
name:唯一的名称,同一个ns只能一个name
namespace:属于哪个ns
labels:标签。kv数据。
annotations:资源注解。
selflink:存在哪个ns下的哪种资源等,如:api/group/version/ns/namespace_realname/type/realname
(查看监听端口,ss -tnl)
(4)spec:规格。将创建的资源对象应该满足什么样的规格或规范,是期望的状态。
查看资源对象如何使用,使用kubectl explain pods
kubectl explain pods.matedata,查看pod的matedata如何定义.
其中,object表示后面还有嵌套,map便是kv映射,string表示一个值,[]object表示对象列表.required表示必须由用户定义,不可省略.
例:vim myapp.yaml
apiVersion: v1
kind: Pod
matedata:
name: myapp
namespace: default
labels:(kv随便写)
app: myapp
tier: frontend
spec:
containers:([]object型的对象写成多个-)
- name:myapp
image: ikube/app:v1
- name: busybox
image: busy:latest
command:
- "bin/sh"
- "-c"
- "echo ${date} >> /usr/share/nginx/html; sleep 5"
kubectl create -f myapp.yaml
kubectl describe pod pdname
(5)status:资源对象当前的状态。k8s保证当前状态与sped指定的状态相同。本字段由集群生成,用户无法定义。
3.apiserver仅接受json格式的资源定义。yaml格式提供配置清单,apiserver自动转为json格式,然后再提交。
4.删除一个资源
kubectl delete -f pod-demo.yaml
更多推荐
所有评论(0)