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]#                                                   

三:使用yaml格式文件创建pod

[root@k8s-master ~]# cd manifests/
[root@k8s-master manifests]# vim pod-demo.yaml    #编辑一个yaml文件
apiVersion: v1      这里表示我们创建的资源属于哪个资源群组。通过 kubectl api-version查看。
kind: Pod      这表示创建的资源名称。
metadata:      说明创建的元数据。
  name: pod-demo    指明创建pod的名称2
  namespace: default   pod的所属的名称空间
  labels:      卷标,表示我们创建的pod的所标记的卷标名称。
     app: myapp
spec:    空间,pod中的容器
  containers:       
     - name: myapp    容器名称
       image: ikubernetes/myapp:v1   容器使用的镜像
     - name: busybox
       image: nginx:1.14-alpine
       ports:      容器监听的端口
         - name: web   
           containerPort: 80
           protocol: TCP

[root@k8s-master manifests]# kubectl create -f pod-demo.yaml  根据文件创建pod
pod/pod-demo created
[root@k8s-master manifests]# kubectl get pods -o wide
NAME                               READY   STATUS    RESTARTS   AGE     IP            NODE        NOMINATED NODE   READINESS GATES
myapp-5d587c4d45-nms7x             1/1     Running   0          22h     10.244.1.9    k8s-node1   <none>           <none>
myapp-5d587c4d45-r4rcc             1/1     Running   0          22h     10.244.2.12   k8s-node2   <none>           <none>
myapp-5d587c4d45-tt6lv             1/1     Running   0          22h     10.244.2.11   k8s-node2   <none>           <none>
nginx-deployment-bd4bfb877-xs62q   1/1     Running   0          7d23h   10.244.1.2    k8s-node1   <none>           <none>
pod-demo                           2/2     Running   0          3s      10.244.1.13   k8s-node1   <none>           <none>
[root@k8s-master manifests]#  
[root@k8s-master manifests]# kubectl exec -it pod-demo -c myapp -- /bin/sh  -c:表示我们进入pod中运行什么命令
/ # 
/ # 
/ # ls
bin    dev    etc    home   lib    media  mnt    proc   root   run    sbin   srv    sys    tmp    usr    var

[root@k8s-master manifests]# kubectl delete pods pod-demo    这表示删除pod。
pod "pod-demo" deleted

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值