您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Kubernetes资源清单篇:如何创立资源?
    时间:2020-11-23 08:59 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    在Kubernetes中一切操作的内容,我们都称为“资源对象”,是由API Server基于HTTP/HTTPS接纳并照应客户端的操作央求,是一种Restful作风的接口,将各种组件及操作内容都笼统成为标准的REST资源,如Namespace、Pod等,其中操作内容以JSON或yml格式数据停止操作。本文解说的是Kubernetes中的最为重要的一节——资源清单,我们想要在Kubernetes中部署Pod、Service等资源对象,都需求经过资源清单的方式来部署,无论是经过命令kubectl,还是可视化控制台,都是离不开资源清单的定义,本文重点讲述资源清单如何定义、如何创立及运用。

    Kubernetes资源清单篇:如何创立资源?

    1、资源分类

    依据资源的功用停止资源分类,Kubernetes资源对象可分为:

    任务负载(Workload):Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、CronJob。

    发现和负载平衡(Discovery & LB):Service 、Ingress。

    配置和存储(Config & Storage):Volume(存储卷)、CSI(容器存储接口,可以扩展各种各样的第三方存储卷)。

    集群(Cluster):Namespace、Node、Role、ClusterRole、RoleBinding(角色绑定)、ClusterRoleBinding(集群角色绑定)。

    元数据(Metadata):HPA、PodTemplate(Pod模板,用于让控制器创立Pod时运用的模板)、LimitRange(用来定义硬件资源限制的)。

    一个运用通常需求多个资源的支撑,例如,运用Deployment资源管理运用实例(Pod)、运用ConfigMap资源保存运用配置、运用Service或Ingress资源暴露效劳、运用Volume资源提供外部存储等。

    2.资源清单

    资源清单,同等于一个剧本,可以通知我们每一步应该怎样去做,Kubernetes接纳到这么一个剧本,就可以按照这个剧本去执行,以到达我们的预期。在Kubernetes中,普通都是经过定义资源清单的方式去创立资源。普通运用yaml格式的文件来创立契合我们预期希冀的资源,这样的yaml文件我们称为资源清单。(也可以定义为json格式)如,创立一个Pod资源:

    apiVersion: v1 

    kind: Pod 

    metadata: 

      name: vue-frontend 

      namespace: test 

      labels: 

        app: vue-frontend 

    spec: 

      containers: 

      - name: vue-frontend 

        image: xcbeyond/vue-frontend:latest 

        ports: 

          - name: port 

            containerPort: 80 

            hostPort: 8080 

    接上去,以Pod资源定义为例展开对资源清单的详细阐明。

    2.1 资源清单定义

    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 

          livenssProbe: 

            exec

              command: [string] 

            httpGet: 

              path: string 

              port: number 

              host: string 

              scheme: string 

              httpHeaders: 

                - name: string 

                  value: string 

              tcpSocket: 

                port: number 

              initialDelaySeconds: 0 

              timeoutSeconds: 0 

              periodSeconds: 0 

              successThreshold: 0 

              failureThreshold: 0 

    ……  

    对各属性的详细阐明如下表所示:(必选属性,是必须存在的,否则创立失败。)

    Kubernetes资源清单篇:如何创立资源?

    Kubernetes资源清单篇:如何创立资源?

    Kubernetes资源清单篇:如何创立资源?

    Kubernetes资源清单篇:如何创立资源?

    上述罗列的是常用的属性,假设想查看全部属性,可以运用命令kubectl explain pod:

    [xcbeyond@bogon ~]$ kubectl explain pod 

    KIND:     Pod 

    VERSION:  v1 

     

    DESCRIPTION: 

    (责任编辑:admin)