3.深入理解kubernetes:k8s的资源清单

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

你可能感兴趣的:(kubernetes,k8s)