k8s入门学习教程3--资源对象文件编写,Configmap映射,持久化存储PV/PVC

本文详细介绍了Kubernetes中的资源对象文件,包括ConfigMap的映射和持久化存储PV/PVC的使用。通过实例展示了如何创建和编辑Deployment、Service的资源文件,以及如何利用ConfigMap映射配置文件,实现容器内部配置的可移植性。同时,讲解了NFS共享存储和PV/PVC的工作原理,提供了创建和挂载PV/PVC的步骤,确保数据的持久化存储。
摘要由CSDN通过智能技术生成

资源对象文件

资源对象文件: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值