K8S学习笔记-01

这篇具有很好参考价值的文章主要介绍了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结尾。文件放置位置不做限定。

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-622582.html

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

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

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

相关文章

  • k8s学习笔记-07(借助kubectl explain编写yaml文件)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com 文章记录了本人学习yaml文件编写过程中的一些经验分享。 在k8s学习过程中yaml文件的编写无疑是比较让人头痛的,尤其是最开始学习的时候。作者结合自己学习过程总结了以下几点

    2024年02月04日
    浏览(30)
  • k8s学习整理文档

    ‍ ‍ 最低配置要求: 2 核虚拟 CPU 4 GB 内存 20 GB 储存空间 X 4 台 (三台集群,一台镜像仓库服务器) 由于搭建网络需要,同时要让各个主机互通,因此这里需要对云服务器设置专门的网络(同时也需要开放服务器对应的公网 IP) 在云服务器厂商中,创建 VPC 网络,网段为:

    2024年02月22日
    浏览(28)
  • k8s学习笔记(二):k8s的组件介绍

    Master:是 集群的网关和中枢枢纽 ,主要作用: 暴露API接口,跟踪其他服务器的健康状态、以最优方式调度负载,以及编排其他组件之间的通信 。单个的Master节点可以完成所有的功能,但是考虑单点故障的痛点,生产环境中通常要部署多个Master节点,组成Cluster。包括所有的

    2024年02月04日
    浏览(35)
  • K8s学习笔记4

    场景: 项目研发部门最近要进行应用运行基础环境迁移,需要由原先的 虚拟机环境 迁移到 K8s集群环境 中, 以便应对开发快速部署和快速测试的需要, 因此,需要准备一套可以用于开发需求的K8s集群,但是对于 仅有容器基础应用的 波仔来讲,如何去构建一套K8s集群呢?如

    2024年02月11日
    浏览(24)
  • K8s学习笔记1

    一、课程介绍: 1、背景: 1)从基础设备主机化向容器化转换。 2)从人肉式运维工作模式向自动化运维模式转换。 3)从自动化运维体系向全体系智能化运维模式转换。 2、课程目标人群: 1)掌握Linux操作系统基础操作人员; 2)掌握基本Docker容器应用人员; 3)掌握X开发语

    2024年02月12日
    浏览(28)
  • K8s学习笔记2

    Kubernetes: K8s由来: 希腊语:舵手、飞行员 来自于谷歌的Borg系统开源(2014年) 简称K8s 现归属于CNCF(2016年) 云原生基金会 是一个开源软件基金会,致力于使云计算普遍性和持续性 官方:www.cncf.io Kubernetes版本: 2014年9月第一个正式版本 2015年7月1.0版本正式发布 现在稳定版本

    2024年02月12日
    浏览(31)
  • K8s学习笔记3

    Kubernetes功能: Kubernetes是一个 轻便的可扩展的开源平台 , 用于管理容器化应用和服务。 通过Kubernetes能够 进行应用的自动化部署和扩缩容。 在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行工作负载15年的经验

    2024年02月11日
    浏览(31)
  • K8S+Docker学习笔记

    修改云服务器主机名称 获取服务器公有ip 生成ssh key Client:操作Docker主机的客户端/命令行/UI Docker_Host:安装Docker的主机 Docker daemon:运行在Docker主机上的Docker后台程序 Registry:Dcoker镜像仓库(Docker Hub) Images:Docker镜像 Containers:由镜像启动起来的程序(实例) 移除之前版本

    2023年04月11日
    浏览(27)
  • k8s学习笔记-05(命名空间)

    原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。 邮箱:yinwanit@163.com k8s中资源通过命名空间进行资源与资源间的隔离。不同的命名空间中的资源相互独立。可以理解为租户。k8s安装完成过后默认自带四个命名空间:default、kube-node-lease、kube-pubic、k

    2024年02月13日
    浏览(29)
  • K8s学习笔记——资源组件篇

    前一篇文章我们介绍了K8s的概念理解和常用命令,这篇我们重点介绍K8s的资源组件和相关配置使用。 Node: 是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机。为了管理 Pod,每个 Node 节点上至少要运行 container runtime(比如 docker, rkt, containerd)、kubelet 和 kube-proxy 服务。

    2024年02月05日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包