KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)

②. 描述k8s的对象


①. 如何会写任意资源的yaml,比如Pod


(kubectl run my-nginx666 --image=nginx #启动一个Pod)


kubectl get pod my-nginx666 -oyaml集群中挑一个同类资源,获取出他的yaml


kubectl run my-tomcat --image=tomcat --dry-run -oyaml 干跑一遍


②. 当您在Kubernetes中创建一个对象时,您必须提供


该对象的spec字段,通过该字段描述您期望的目标状态,该对象的一些基本信息,例如名字

可以使用 kubectl 命令行创建对象,也可以编写.yaml 格式的文件进行创建


[root@k8smaster ~]# kubectl run my-tomcat --image=tomcat --dry-run -oyaml  # dry-run过期了,可以使用dry-run=client
[root@k8smaster ~]# kubectl api-resources | grep pod
# tomcat干跑
#(1). apiVersion和kind称为typeMeta(基本信息)
#(2). metadata成为元数据,ObjectMeta
apiVersion: v1 # 同一个资源有可能有多个版本。看 kubectl api-resources提示的
kind: Pod # 资源类型 kubectl api-resources:可以获取到所有资源
metadata: # 每一个资源定义一些元数据信息
  labels:
    run: my-tomcat
  name: my-tomcat # 指定资源的名字
spec: # 资源的规格(镜像名、镜像的环境变量信息等等)
  containers: # 指定要启动一个什么样的容器
  - image: tomcat # 容器的镜像
    name: my-tomcat # 容器的名字
    resources: {} # 容器的资源信息(后面详解)
  dnsPolicy: ClusterFirst # dns的策略信息(后面详解)
  restartPolicy: Always
# 以上是资源的完整规格描述部分 以上是我们必须会编写的
# status不用我们写,是k8s集群实时更新的状态信息,只要资源变化,kubelet会请求api-server保存最新的资源状态信息
status: {} 


KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)


③. 在想要创建的Kubernetes对象对应的.yaml文件中,需要配置如下的字段(必须字段)

apiVersion:创建该对象所使用的Kubernetes API的版本


kind:想要创建的对象的类别


metadata: 用于唯一确定该对象的元数据:包括name和namespace,如果namespace为空,则默认值为default


spec:你所期望的该对象的状态


不同类型的 Kubernetes,其spec对象的格式不同(含有不同的内嵌字段),通过API手册可以查看 Kubernetes对象的字段和描述。例如,假设您想了解Pod的spec定义,可以在这里找到,Deployment的spec定义可以在这里找到


KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)




上一篇:KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(一)


下一篇:KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(三)