kubernetes资源清单

一:kubernetes的资源清单。

(1)API server是以Restful风格格式;
通过Get,dut,delete,post,请求方法反应到kubectl ,run,get,edit
(2)资源相当于就是对象
1,workload:pod,replicaset,deployment,satefulset,Daemonset,job,cronjob...统称为负载性资源
2,服务发现及负载均衡:service,ingress
3,配置与存储:volume,csi(容器存储接口)
(1configmap(用作于配置中心),secret
(2)DownwardAPI
4,集群级资源
namespace,mode,role,clusterrole,rolebinding,clusterrolebinding
5,元数据型资源
(1)HPA,podtemplate,limitrange

二:kubernetes资源创建。

(1)Apiserver仅接受json格式的资源定义;yaml格式提供配置清单,apiserver可自动将其转换为json格式,而后提交。
(2)大部分资源的配置清单。
apiserver:group/version
kind:资源类别
metadata:元数据
   name,namespace,labels,annotations
spec:客户期望的状态
status:当前状态

实列:以配置清单ymal格式来配置一个资源。
[root@k8s-master ~]# mkdir manifests/
[root@k8s-master manifests]# vim pod-demo.yaml
[root@k8s-master manifests]# kubectl api-versions  查看相关APIversion
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
authentication.k8s.io/v1
authentication.k8s.io/v1beta1

apiVersion: v1   这表示创建的资源属于那个apiversion群组。
kind: Pod       这表示我们创建的对象是那个
metadata:
  name: pod-demo     创建的pod名称
  namespace: default   所属的名称空间
  labels:     pod的卷标,以便根据卷标进行调度。2
     app: myapp
spec:   
  containers:      
  - name: myapp     运行容器的名称
    image: busybox  运行容器所需镜像
    command: ['sh', '-c', 'echo hello kubernetes! && sleep 36']  这表示容器中默认运行的命令。
~  
[root@k8s-master manifests]# kubectl create -f pod-demo.yaml
pod/pod-demo created
[root@k8s-master manifests]# kubectl exec pod-demo -c myapp -- /bin/ls  使用exec进入到容器中,运行相关命令
bin
dev
etc
home
proc
root
sys
tmp
usr
var
[root@k8s-master manifests]# 
[root@k8s-master manifests]# kubectl get pods -w   -w参数表示实时监控pod的运行状态。
NAME                     READY   STATUS             RESTARTS   AGE
myapp-5d587c4d45-5fltt   1/1     Running            1          4d1h
myapp-5d587c4d45-gbb6r   1/1     Running            2          10d
myapp-5d587c4d45-zb86g   1/1     Running            1          4d1h
pod-demo                 0/1     CrashLoopBackOff   5          8m27s
[root@k8s-master manifests]# kubectl delete -f pod-demo.yaml   使用delete表示删除pod
pod "pod-demo" deleted
[root@k8s-master manifests]#                                                   

上述总结的为pod最基本的配置清单文件,注意:pod是有生命周期的。

你可能感兴趣的:(K8S)