首页 > 其他分享 >Kubernetes配置文件说明

Kubernetes配置文件说明

时间:2022-11-22 15:44:08浏览次数:35  
标签:容器 配置文件 Kubernetes name 说明 Pod spec containers string

配置文件说明

apiVersion: v1       #必选,版本号,例如v1
kind: Pod|Deployment|Job|Ingress|Service       #资源类型
    metadata:            #包含了定义的 Pod 的一些 meta 信息,比如名称、namespace、标签等等信息。
  name: string       #必选,Pod名称
  namespace: string    #必选,Pod所属的命名空间
  labels:              #自定义标签
    - name: string     #自定义标签名字
  annotations:         #自定义注释列表
    - name: string
spec:         #Pod中容器的详细定义
  replicas: 2        #将 replicas 设置为 2,指定该 Deployment 应有 2 个 Pods
  containers:        #必选,Pod中容器列表
  - name: string     #必选,容器名称
    image: string    #必选,容器的镜像名称
    imagePullPolicy: [Always|Never|IfNotPresent] #获取镜像的策略 Alawys(下载镜像) IfNotPresent(优先使用本地镜像),否则下载镜像,Nerver(仅使用本地镜像)
    command: [string]     #容器的启动命令列表,如不指定,使用打包时使用的启动命令
    args: [string]        #容器的启动命令参数列表
    workingDir: string     #容器的工作目录
    volumeMounts:          #挂载到容器内部的存储卷配置
    - name: string         #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
      mountPath: string    #存储卷在容器内mount的绝对路径,应少于512字符
      readOnly: boolean    #是否为只读模式
    ports:             #需要暴露的端口库号列表
    - name: string     #端口号名称
      containerPort: int   #容器需要监听的端口号
      hostPort: int        #容器所在主机需要监听的端口号,默认与Container相同
      protocol: string     #端口协议,支持TCP和UDP,默认TCP
    env:               #容器运行前需设置的环境变量列表
    - name: string     #环境变量名称
      value: string    #环境变量的值
    resources:         #资源限制和请求的设置
      limits:          #资源限制的设置
        cpu: string       #Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
        memory: string     #内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
      requests:            #资源请求的设置
        cpu: string        #Cpu请求,容器启动的初始可用数量
        memory: string     #内存清楚,容器启动的初始可用数量
    livenessProbe:         #对Pod内个容器健康检查的设置,当探测无响应几次后将自动重启该容器,检查方法有exec、httpGet和tcpSocket,对一个容器只需设置其中一种方法即可
      exec:          #对Pod容器内检查方式设置为exec方式
        command: [string]  #exec方式需要制定的命令或脚本
      httpGet:       #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
        path: string
        port: number
        host: string
        scheme: string
        HttpHeaders:
        - name: string
          value: string
       tcpSocket:     #对Pod内个容器健康检查方式设置为tcpSocket方式
         port: number
       initialDelaySeconds: 0  #容器启动完成后首次探测的时间,单位为秒
       timeoutSeconds: 0       #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
       periodSeconds: 0        #对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
       successThreshold: 0
       failureThreshold: 0
       securityContext:
         privileged:false
    restartPolicy: [Always | Never | OnFailure]   #Pod的重启策略,Always表示一旦不管以何种方式终止运行,kubelet都将重启,OnFailure表示只有Pod以非0退出码退出才重启,Nerver表示不再重启该Pod
    nodeSelector: obeject  #设置NodeSelector表示将该Pod调度到包含这个label的node上,以key:value的格式指定
    imagePullSecrets:      #Pull镜像时使用的secret名称,以key:secretkey格式指定
    - name: string
    hostNetwork: false      #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
    volumes:           #在该pod上定义共享存储卷列表
    - name: string     #共享存储卷名称 (volumes类型有很多种)
      emptyDir: {}     #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
      hostPath: string     #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
        path: string       #Pod所在宿主机的目录,将被用于同期中mount的目录
      secret:              #类型为secret的存储卷,挂载集群与定义的secre对象到容器内部
        scretname: string  
        items:     
        - key: string
          path: string
      configMap:       #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
        name: string
        items:
        - key: string
          path: string

kind 说明:

  • Deployments:在上面的例子中,只是单纯的创建了一个 POD 实例,但是如果这个 POD 出现了故障的话,服务也就挂掉了,所以 kubernetes 提供了一个Deployment的概念,可以让 kubernetes 去管理一组 POD 的副本,也就是副本集,这样就可以保证一定数量的副本一直可用的,不会因为一个 POD 挂掉导致整个服务挂掉。
  • Service:是发现后端pod服务;是为一组具有相同功能的容器应用提供一个统一的入口地址;是将请求进行负载分发到后端的各个容器应用上的控制器。

YAML格式的Pod定义文件的完整内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: string
  namespace: string
  labels:
  - name: string
  annotations:
  - name: string
spec:
  containers:
  - name: string
    image: string
    imagePullPolicy: [Always | Never | IfNotPresent]
    command: [string]
    args: [string]
    workingDir: string
    volumeMounts:
    - name: string
      mountPath: string
      readOnly: boolean
    ports:
    - name: string
      containerPort: int
      hostPort: int
      protocol: string
    env:
    - name: string
      value: string
    resources:
      limits:
        cpu: string
        memory: string
      requests:
        cpu: string
        memory: string
    livenessProbe:
      exec:
        command: [string]
      httpGet:
        path: string
        port: number
        host: string
	 	scheme: string
	 	httpHeaders:
	 	- name: string 
	 	  value: string
      tcpSocket:
 	    port: number
      initialDelaySeconds: 0
	  timeoutSeconds: (
	  periodSeconds: 0
	  successThreshold: 0
	  failureThreshold: 0
    securityContext:
  	  privileged: false
  restartPolicy: [Always
  nodeSelector: object
  imagePull3ecrets:
  - name: string
  hostNetwork: false
  volumes:
  - name: string
    emptyDir: {}
    hostPath:
      path: string
    secret:
      secretName: string
      items:
      - key: string
        path: string
    configMap:
      name: string
      items:
      - key: string
        path: string
属性名称 取值类型 是否必选 取值说明
version String Required 版本号,例如v1
kind String Required Pod
metadata Object Required 元数据
metadata.name String Required Pod的名称
metadata.namespace String Required Pod所属的命名空间,默认为Default
metadata.labels[ ] List 自定义标签列表
metadata.annotation[ ] List 自定义注解列表
Spec Object Required Pod中容器的详细定义
spec.containers[ ] List Required Pod中的容器列表
spec.containers[ ].name String Required 容器的名称
sepc.containers[ ].image String Required 容器镜像名称
spec.containers[ ].imagePullPolicy String 镜像拉取策略,可选值包括:Always,Nerver、IfNotPresent,默认为Always
spec.containers[ ].command[] List 容器的启动命令列表,如果不指定,则使用镜像打包时使用的启动命令
spec.containers[ ].args[] List 容器的启动命令参数列表
spec.containers[ ].workingDir String 容器的工作目录
spec.containers[ ].volumeMounts[] List 挂载到容器内部的存储卷配置
spec.containers[ ].volumeMounts[].name String 引用Pod定义的共享存储卷的名称,需使用volumes[]部分定义的共享存储卷名称
spec.containers[ ].volumeMounts[].mountPath String 存储卷在容器内Mount的绝对路径,应少于512个字符
spec.containers[ ].volumeMounts[].readOnly Boolean 是否为只读模式,默认为读写模式
spec.containers[ ].ports[] List 容器需要暴露的端口列表
spec.containers[ ].ports[].name String 端口的名称
spec.containers[ ].ports[].containerPort Int 容器需要监听的端口号
spec.containers[ ].ports[].hostPort Int 容器所在的主机需要监听的端口号,默认与ContainerPort相同。设置hostPort时,同一台宿主机讲无法启动改容器的第2分副本
spec.containers[ ].ports[].protocol String 端口协议,支持TCp和UDP,默认为TCP
spec.containers[ ].env[] List 容器运行前需设置的环境变量列表
spec.containers[ ].env[].name String 环境变量的名称
spec.containers[ ].env[].value String 环境变量的值
spec.containers[ ].resources Object 资源限制和资源请求的设置
spec.containers[ ].resources.limits Object 资源限制的设置
spec.containers[ ].resources.limits.cpu String CPU限制,单位为core数,将用于docker run --cpu-shares参数
spec.containers[ ].resources.limits.memory String 内存限制,单位可以为MiB,GiB,将用于docker run --memory
spec.containers[ ].resources.requets Object 资源限制的设置
spec.containers[ ].resources.requets.cpu String PCU请求,单位为core数,容器启动的初始可用数量
spec.containers[ ].resources.requets.memory String 内存请求,单位可以为MiB,GiB等,容器启动的初始可用数量
spec.volumes[ ] List 在该Pod上定义的共享存储列表
spec.volumes[ ].name String 共享存储的名称,在一个Pod中每个存储卷定义一个名称
spec.volumes[ ].emptyDir Object 类型为emptyDir的存储卷,表示与Pod同生命周期的一个临时目录,其值为一个空对象:emptyDir: {}
spec.volumes[ ].hostPath Object 类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录,通过vlumes.[ ].hostPath.path指定
spec.volumes[ ].hostPath.path String Pod所在主机的目录,将被用于容器中mount的目录
spec.volumes[ ].secret Object 类型为secret的存储卷,表示挂载集群预定义的secret对象到容器内部
spec.volumes[ ].configMap Object 类型为configMap的存储卷,表示挂载集群预定义的configMap对象到容器内部
spec.volumes[ ].livenessProbe Object 对Pod内各容器健康检查的设置,当探测无响应几次后,系统讲自动重启该容器。可以设置的方法包括:exec、httpGet和tcpSocket。对一个容器仅需设置一种健康监测方法
spec.volumes[ ].livenessProbe.exec Object 对Pod内各容器健康检查的设置,exec方式
spec.volumes[].livenessProbe.exec.command[] String exec方式需要指定的命令或者脚本
spec.volumes[ ].livenessProbe.httpGet Object 对pod内各容器健康检查的设置HTTPGet方式。需指定path、port
spec.volumes[ ].livenessProbe.tcpSocket Object 对pod内各容器健康检查的设置,tcpSocket方式
spec.volumes[].livenessProbe.initiaDelaySeconds Number 容器启动完成后首次探测时间,单位为s
spec.volumes[ ].livenessProbe.timeoutSeconds Number 对容器健康检查的探测等待响应的超时时间设 置,单位为s,默认值为ls。若超过该超时时间设置,则将认为该容器不健康,会重启该容器
spec.volumes[ ].livenessProbe.periodSeconds Number 对容器健康检查的定期探溯时间设置,单位为s,默认10s探测 一次
spec.restartPolicy String Pod的瓜启策略,可选俏为Always、OnFailure, 默认值为Always。
spec.nodeSelector Object 设置Node的Label,以key:value格式指定,Pod将被调度到具有这些Label的Node上
spec.imagePullSecrets Object pull镜像时使用的 Secret名称,以name:secrekey格式指定
spec.hostNetwork Boolean 是否使用主机网络模式,默认为false。设置为true比搜狐容器使用宿主机网络,不在使用Docker网桥,该pod讲无法在同一台宿主机上启动第2个副本

sepc.containers[].imagePullPolicy: 镜像拉取策略,可选值包括:Always、Never、IfNotPresent,默认值为Always。

  • Alwys:表示每次都尝试重新拉取镜像
  • IfNotPresent:表示如果本地有该镜像,则使用本地镜像,本地不存在是拉取镜像。
  • Never:表示仅使用本地镜像

另外如果包含如下设置,系统将默认设置imagePullPolicy=Always,如下所述:

  1. 不设置imagePullPolicy,也未指定镜像的tag;
  2. 不设置imagePullPolicy,镜像tag为latest;
  3. 启用名为AlwaysPullImages的准入控制器(Adminission Controler)

spec.volumes[].name:共享存储卷的名称,在一个Pod中每个存储卷定义一个名称,应符合RFC1035规范。容器定义部分的 containers[]volumeMounts[].name将应用该共享存储卷的名称。

Volume的类型包括:emptyDir、hostPath、gcePersistenDisk、awsElasticBlockStore、gitRepo、secret、nfs、iscsi、glusterfs、persistentVolumeClaim、rbd、flexVolume、cinder、cephfs、flocker、downwardAPI、fc、azureFile、configMap、vsphereVolume,可以定义多个Volume,每个Volume的name保持唯一。

YAML格式的Service定义文件的完整内容如下:

apiVersion: v1
kind: Service
metadata:
  name: string
  namespace: string
  labels:
  - name: string
  annotations:
  - name: stirng
spec:
  selector: []
  type: string
  clusterIP: string
  sessionAffinity: string
  prots:
  - name: string
    protocol: string
    port: int
    targetPort: int
    nodePort: int
  status:
    loadBalancer:
      ingress:
        ip: string
        hostname: string
属性名称 取值类型 是否必选 取值说明
version string Required v1
kind string Required Service
metadata object Required 元数据
metadata.name string Required Service名称
mctadata namespace string Required 命名空间,不指定默认default
metadata.labels[] list 自定义标签
metdata.annotation[] list 自定义注解
spe object Required 详细描述
spec.selector[] list Required 选择具有指定Label标签的Pod作为管理范围
spec.type string Required Service的类型,指定Service的访问方式,默认ClusterIP
spec.clusterIP string 虚拟服务IP地址,当type=ClusterIP时,如果不指定,则系统进行自动分配,也可以手动指定。当type=LoadBalancer时则需要指定
spec.sessionAfinity string 是否支持Session,可选值为ClientIP,默认为空。ClientIP:表示将同一个客户端的访问请求都转发到同一个后端Pod
spec.ports[] list Service需要暴露的 端口列表
secporsI].name string 端口名称
spec.ports[].protocol string 端口协议,支持TCP和UDP,默认TCP
spec.ports[].port int 服务监听的端口号
spec.ports[].targetPort int 需要转发到后端Pod的端口号
spec.prots[].nodePort int 当sepc.type=NodePort时,指定映射到物理机的端口号
Status object dang spec.type=LoadBalancer时,设置外部负载均衡器的地址,用于公有云环境
status.loadBalancer object 外部负载均衡器
status.loadBalancer.ingress object 外部负载均衡器
status.loadBalancer.ingress.ip string 外部负载均衡器的IP地址
status.loadBalancer.ingress.hostname string 外部负载均衡器的主机名

Service Type有三种:

ClusterIP:虚拟的服务IP地址,该地址用于k8s集群内部的Pod访问,在Node上kube-proxy通过设置的iptabels规则进行转发。

NodePort:使用宿主机的端口,使能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务。

LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均衡器的IP地址,并同时定义NodePort和ClusterIP,用于公有云环境

标签:容器,配置文件,Kubernetes,name,说明,Pod,spec,containers,string
From: https://www.cnblogs.com/Insa/p/16915313.html

相关文章

  • Eigrp 的配置与说明
    EIGRPDatabases(EIGRP数据库)存在三张表如下:1、邻居表neighbortable:EIGRP路由器会在启动后发送HELLO包来寻找和维持邻居关系2、拓扑表topologytable:EIGRP路由器会把从邻......
  • 【云原生】Kubernetes(k8s)Calico 客户端工具 calicoctl
    目录一、概述二、calicoctl安装三、calicoctl简单使用1)认证信息配置2)查看IP资源池3)配置IP池4)IP资源池示例演示5)固定IP示例演示6)网络策略(NetworkPolicy)四、Kube-ip......
  • MySql配置文件my.ini所在位置
    C:\ProgramData\MySQL\MySQLServer5.7 #Otherdefaulttuningvalues#MySQLServerInstanceConfigurationFile#---------------------------------------......
  • dhcp 协议原理与说明
    DHCP报文DHCP报文是承载于UDP上的高层协议报文,采用67(DHCP服务器)和68(DHCP客户端)两个端口号。DHCP报文的格式如下图所示。图1 DHCP报文格式<所有DHCP提供的配置信息都在opt......
  • Eureka集群原理说明
      问题:微服务RPC远程服务调用最核心的是什么高可用,试想你的注册中心只有一个onlyone,它出故障了那就呵呵( ̄▽ ̄)"了,会导致整个为服务环境不可用,所以解决办......
  • 第五章 Kubernetes资源清单定义入门
    常用Kubernetes对象及其分组深入理解Kubernetes对象的通用设计:TypeMeta:G(roup)K(ind)V(ersion)大部分资源清单配置:apiVersion:group/version可以通过kubec......
  • 学院域名解析系统(DNS)说明来自博奥智源公司
    序号货物名称品牌型号技术参数、配置及服务要求1DNS系统网瑞达WRD-ITMS-DNS-H1.支持双机负载均衡方式工作,本次需要实现双机负载均衡方式;2.......
  • 系统架构与设计(7)- Kubernetes 的共享存储
    计算机存储系统由存放程序和数据的各类存储设备及有关的软件构成,是计算机系统的重要组成部分,用于存放程序和数据。存储系统分为内存储器和外存储器,两者按一定的结构,有机地......
  • 6:常见异常汇总和说明
    由于return有两种作用:结束方法运行、返回值。我们一般不把return放到异常处理结构中,而是放到方法最后。【示例】return和异常结构的正确处理方式deftest01():......
  • kubernetes部署metrics-server
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于metrics-server原有的kubernetes容器监控服务heapster,从ku......