资源对象文件
资源对象文件:kubenetes通过RC/RS管理POD,在RC中定义了如何启动POD,如何运行,启动几副本等功能,如果我们创建的文件在其中使用Yaml的语法格式描述了上面的信息,这个文件就是我们的资源对象文件.
资源对象文件的作用:可以创建,删除,管理资源对象
资源对象从哪里来:
资源对象文件一般由用户根据需求编写,我可以查询一个资源对象文件,包括json,yaml,wide
kubectl get 资源对象 资源名 -o 格式
一般的话,我们创建资源对象会选择deployment和service
[root@kubemaseter ~]# kubectl get pod test1-67b44cc6bf-rcmz2 -o yaml #查看pod对应的资源文件,但是我们一般是不直接使用
apiVersion: v1 #当前格式的版本
kind: Pod #当前创建资源的类型,当前类型是pod
metadata: #当前资源的元数据
creationTimestamp: 2020-06-11T06:39:24Z
generateName: test1-67b44cc6bf-
labels:
pod-template-hash: "2360077269"
run: test1
name: test1-67b44cc6bf-rcmz2 #当前资源的名字是元数据必须的项
namespace: default
ownerReferences:
- apiVersion: extensions/v1beta1
blockOwnerDeletion: true
controller: true
kind: ReplicaSet
name: test1-67b44cc6bf
uid: 4a1ca997-abae-11ea-9033-525400eb2966
resourceVersion: "1164287"
selfLink: /api/v1/namespaces/default/pods/test1-67b44cc6bf-rcmz2
uid: 4a20a194-abae-11ea-9033-525400eb2966
spec: #是当前pod的规格说明
containers:
- image: 192.168.1.100:5000/myos:latest
imagePullPolicy: Always
name: test1
resources: {}
stdin: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
tty: true
dnsPolicy: ClusterFirst
nodeName: kubenode2
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
conditions:
- lastProbeTime: null
lastTransitionTime: 2020-06-11T06:39:24Z
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: 2020-06-11T06:41:44Z
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: 2020-06-11T06:39:24Z
status: "True"
type: PodScheduled
containerStatuses:
- containerID: docker://d79fc56955097465f2f38fba01f34c2978ec55be0cce666328e1cddb02594b32
image: 192.168.1.100:5000/myos:latest
imageID: docker-pullable://192.168.1.100:5000/myos@sha256:aa7b94907abef0d27fb0f50a1e803c1d20bb4338f8d4c5ab269bafc2ccff2dd5
lastState:
terminated:
containerID: docker://46c755a4c96a603783b7775684377e0410480b60dc978f59a1a8a55242a66261
exitCode: 0
finishedAt: 2020-06-11T06:41:39Z
reason: Completed
startedAt: 2020-06-11T06:39:31Z
name: test1
ready: true
restartCount: 1
state:
running:
startedAt: 2020-06-11T06:41:43Z
hostIP: 192.168.1.22
phase: Running
podIP: 10.254.45.3
qosClass: BestEffort
startTime: 2020-06-11T06:39:24Z
[root@kubemaseter ~]# kubectl get service apche -o yaml #服务对应的资源文件
apiVersion: v1
kind: Service
metadata:
creationTimestamp: 2020-06-11T06:29:33Z
labels:
run: my-apache
name: apche
namespace: default
resourceVersion: "1163182"
selfLink: /api/v1/namespaces/default/services/apche
uid: ea2d7f22-abac-11ea-9033-525400eb2966
spec:
clusterIP: 10.254.18.254
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: my-apache
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
编辑资源文件控制容器副本
[root@kubemaseter ~]# kubectl get deployment my-apache
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
my-apache 2 2 2 2 7h
[root@kubemaseter ~]# kubectl edit deployment my-apache
deployment.extensions "my-apache" edited
[root@kubemaseter ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
my-apache-7c49dcfd54-4lfxw 0/1 ContainerCreating 0 7s