K8S学习笔记-01(yaml文件编写)

这篇具有很好参考价值的文章主要介绍了K8S学习笔记-01(yaml文件编写)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com

说明

记录k8s中yaml文件编写相关内容。

k8s官网文档库:https://kubernetes.io/docs/home/
kubelet 命令参考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

一、书写格式

k8s中yaml文件结尾需以.yml或.yaml结尾。文件放置位置不做限定。

yaml文件中每行都严格遵守层级,同层级资源缩进相同,每个层级间推荐使用两个空格进行缩进,不能使用tab键进行缩进。

yaml文件键值直接使用冒号作为分割线,冒号过后有且只有一个空格。

yaml文件采用驼峰的形式进行书写,冒号左边的第一个单词小写第二个单词开始首字母大写,冒号右边每个单词首字母大写。参考标红字体部分明显可以区分。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod3
  name: pod3
spec:
  containers:
  - image: busybox
    imagePullPolicy: IfNotPresent
    name: pod3
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

二、apiVersion版本与资源组

yaml文件首行为apiVersion及标注该yaml文件使用的版本。不同资源版本中资源使用方式和配置参数存在一定的差异。

apiVersion格式为:{Group}/{Version},Group代表Kubernetes API资源组的名称,Version代表该组的API版本号。

使用 kubectl  api-versions 命令可以查看当前集群支撑的apiVersion信息。

不同apiVerson资源组中包含的kind资源不一样。确定了要使用的kind过后需要明确知道哪个一个apiVersion中包含该kind资源,在yaml中的apiVersion行键入对应的资源组及版本信息。

 k8s apiversion分为四个类别:稳定版(Stable)、Beta版(Beta)、Alpha版(Alpha)和Deprecated版(Deprecated)。

  • Stable稳定版通常只有在主版本发布时才会更新,是被支持且兼容的版本。
  • Beta版可能包含一些已经被定义好但还未成为稳定版的功能,因此可能会在后续版本中被修改或删除。
  • Alpha版是一种开发中的版本类型,API架构和功能都还在开发和完善过程中,通常不建议在生产系统中使用。
  • Deprecated版是已经被废弃的版本,中止了维护和支持。

常见的均可在https://kubernetes.io/zh-cn/docs/reference/kubernetes-api/workload-resources/中查看

仅展示部分apiVersion中的资源组及版本对应的kind资源。

2.1 工作负载资源组:

  • v1:Pod、PodTemplate、ReplicationController、
  • apps/v1:ReplicaSet、Deployment、StatefulSet、ControllerRevision、DaemonSet
  • batch/v1:Job、CronJob
  • autoscaling/v1:HorizontalPodAutoscaler
  • autoscaling/v2:HorizontalPodAutoscaler
  • scheduling.k8s.io/v1:PriorityClass
  • resource.k8s.io/v1alpha2:PodSchedulingContext、ResourceClaim、ResourceClaimTemplate、ResourceClass

2.2 Service资源组:

  • v1:Service、Endpoints 
  • discovery.k8s.io/v1:EndpointSlice
  • networking.k8s.io/v1:Ingress、IngressClass

2.3 配置和存储资源组:

  • v1:ConfigMap、Secret、Volume、PersistentVolumeClaim、PersistentVolume
  • storage.k8s.io/v1:StorageClass、VolumeAttachment、CSIDriver、CSINode、CSIStorageCapacity

2.4 身份认证资源组:

  • v1:ServiceAccount、
  • authentication.k8s.io/v1:TokenRequest、TokenReview
  • certificates.k8s.io/v1:CertificateSigningRequest
  • certificates.k8s.io/v1alpha1:ClusterTrustBundle

2.5 策略资源组:

  • v1:LimitRange、ResourceQuota
  • networking.k8s.io/v1:NetworkPolicy
  • policy/v1:PodDisruptionBudget
  • networking.k8s.io/v1alpha1:IPAddress

2.6 集群资源组:

  • v1:Node、Namespace、Binding、ComponentStatus
  • events.k8s.io/v1:Event
  • apiregistration.k8s.io/v1:APIService
  • coordination.k8s.io/v1:Lease
  • node.k8s.io/v1:RuntimeClass
  • flowcontrol.apiserver.k8s.io/v1beta3: FlowSchema、PriorityLevelConfiguration
  • networking.k8s.io/v1alpha1:ClusterCIDR

三、标准模板获取 

k8s环境中为了方便管理员快速的完成资源yaml文件编写,尽快的上线应用。可以有三种方式获取到某一个kind资源的编写模板。

3.1 官网文档中获取

网址:https://kubernetes.io/zh-cn/docs/home/

在官方文档中找到对应的kind中复制出标准的yaml配置文件模板。

3.2 命令生成

参考kubectl工作使用说明:https://kubernetes.io/zh-cn/docs/reference/kubectl/kubectl/

导出一个POD的标准模板,其中--dry-run表示不创建,只是进行语句检查调试,client表示基本的格式、server表示完整的格式,一般情况下采用client生成的文件进行二次编写。

# kubectl run pod01 --image=busybox --image-pull-policy=IfNotPresent --dry-run=client -o yaml  > pod01_c.yaml
# kubectl run pod01 --image=busybox --image-pull-policy=IfNotPresent --dry-run=server -o yaml  > pod01_s.yaml

Always:总是去网上拉取镜像
Never:不使用网上的镜像
IfNotPresent:优先使用本地镜像
--dry-run=server/client表示只模拟创建,用作检查语法是否错误。client输出比较简洁的文本,server表示输出比较详细的文本。

3.3 现有资源生成

利用现在已经存在的同kind类型资源导出模板

# kubectl get ds/calico-node -n kube-system -o yaml  > ds01.yaml

四、资源创建帮助

在明确了apiVersion和kind,同时有了模板文件过后就可以进行yaml文件的编写了。但对于新手来说或者一些不常用的kind,往往没法记住其使用方法,则可使用命令查看对应apiVersion下kind的配置帮助文件。

查看pod的配置参数。

# kubectl explain  --api-version=v1 pod

如果查看的资源还有下级配置则在可接着查看

# kubectl explain  --api-version=v1 pod.metadata

其中资源配置中有三种类型:string、Object、integer,同时<>表示为必填参数,[]表示为可选参数。

 文章来源地址https://www.toymoban.com/news/detail-623601.html

到了这里,关于K8S学习笔记-01(yaml文件编写)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S:Yaml文件详解及编写示例

    (1)Kubernetes 支持 YAML 和 JSON 格式管理资源对象 (2)JSON 格式:主要用于 api 接口之间消息的传递 (3)YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 (1)大小写敏感 (2)使用缩进表示层级关系 (3)不支持Tab键制表符缩进,只使用

    2024年02月04日
    浏览(39)
  • K8S学习笔记-01

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com 记录k8s中yaml文件编写相关内容。 k8s官网文档库:https://kubernetes.io/docs/home/ kubelet 命令参考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands k8s中yaml文件结尾需以.yml或.yaml结

    2024年02月14日
    浏览(37)
  • 01-k8s学习笔记之认识 Kubernetes

    应用部署的三大阶段 k8s 的特点 Apache Mesos Docker Swarm Google Kubernetes

    2024年01月16日
    浏览(62)
  • K8S:Yaml文件详解

    目录 一.Yaml文件详解 1.Yaml文件格式 2.YAML 语法格式 二.Yaml文件编写及相关概念 1.查看 api 资源版本标签 2.yaml编写案例 (2)Deployment类型编写nginx服务 (3)k8s集群中的port介绍 (5)快速编写yaml文件 (6)案例:自主式创建service并关联上面的pod (7)Pod yaml文件详解 (8)deploymen

    2024年02月08日
    浏览(50)
  • [ K8S ] yaml文件讲解

    Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式:主要用于 api 接口之间消息的传递 YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 YAML 语法格式: ●大小写敏感 ●使用缩进表示层级关系 ●不支持Tab键制表符缩进,只使用空格缩进

    2024年02月13日
    浏览(46)
  • K8S---yaml文件详解

    目录 一、K8S支持的文件格式 1、yaml和json的主要区别 2、YAML语言格式 二、YAML 1、查看 API 资源版本标签 2、编写资源配置清单 2.1 编写 nginx-test.yaml 资源配置清单 2.2 创建资源对象 2.3 查看创建的pod资源 3、创建service服务对外提供访问并测试 3.1 编写nginx-svc-test.yaml文件 3.2 创建资

    2024年02月12日
    浏览(43)
  • K8s中yaml文件详解

    文章目录 目录 一、YAML基础 二、说明 三、使用YAML创建Pod 附上一个具体的yaml解释文件: YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便。它实质上是一种通用的数据串行化格式。 YAML语法规则: 1.1 YAML Maps Map顾名思义指的是字典,即一个Key:Value 的键值

    2024年02月15日
    浏览(55)
  • K8S之yaml文件详解

    文章目录 一、概述 二、YAML文件优点 三、YAML与 JSON 和 XML 的关系 四、YAML 文件的结构 五、YAML 在 Kubernetes 中的使用 六、YAML文件模板生成/导出 一、概述  Kubernetes只支持YAML和JSON格式创建资源对象 JSON格式用于接口之间消息的传递,YAML格式用于配置和管理 YAML是专门用来写配置

    2024年02月02日
    浏览(54)
  • kubernetes(k8s) Yaml 文件详解

    YAML格式 :用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读。 1、查看API 资源版本标签 kubectl api-versions 2、编写资源配置清单 2.3 查看创建的pod资源 kubectl get pods -o wide 3、创建service服务对外提供访问并测试 3.1、编写nginx-svc-test.yaml文件 3.2、创建资源

    2024年02月05日
    浏览(47)
  • k8s之YAML文件书写秘笈

                 在kubernetes的江湖里,一直流传YAML的传说,它是Yet Another Markup Language的英文缩写,用来配置k8s里的各类资源.。通常,你可以选择YAML或JSON来完成声明式的配置文件,这种方式便于复用和保存,但命令式的方式有一定的局限性,仅有部分kubernetes资源可以使用命令

    2024年01月18日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包