k8s 资源清单
k8s 资源清单
k8s中所有的内容都抽象为资源,资源实例化之后,称为对象
1.1 资源分类
我们把k8s中的资源分位三类
名称空间级别:
- 工作负载型资源:Pod,ReplicaSet,Deployment。。
- 服务发现与负载均衡型资源:Service,Ingress。。
- 配资与存储型资源: Volume,CSI。。
- 特殊类型的资源: ConfigMap,Secre。。
集群级资源: - namespace,node,clusterole,clusterrolebing
元数据型资源:
HPA,PodTemplate,LimitRange
资源有了,我们还需要有个资源清单,告诉k8s需要部署哪些环境,一般使用yaml文件来编辑资源清单
我们使用kubectl create -f aaa.yaml的时候,流程是这样的:
yaml》kubectl处理》json》apiserver
2.1 资源清单yaml文件组成
apiVersion: apps/v1 #如果没有给定的group名称,那么默认为core,可以使用kubectl api-versions 获取当前k8s版本上所有的 apiversion版本信息
kind: Deployment #资源类型
metadata: #资源元数据
name
namespace
label
version: v1
app: myapp
spec: #期望的状态
status: #当前状态,本字段在k8s自身维护,用户不需要定义
当我们想编辑一个yaml文件的时候,资源清单怎么获取?
kubectl explain pod
kubectl explain rc
kubectl explain pod.metadata
kubectl explain pod.kind
explain可以看到kind不同类型,可以参考这个编辑自己的yaml
如果想快速弄一个模板,可以用下面命令获取一个yaml
kubectl get pod mypod -n mynamespace -o yaml
//甚至create的操作命令,也可以做成yaml
kubectl create configmap game-config --from-file=config/ --dry-run -o yaml