zoukankan      html  css  js  c++  java
  • 傲视Kubernetes(四):Pod的创建及标签的使用

    近期一直在思索天人之道,缺少大块的时间,决定将学习博客改为以小短文为主。本文主要内容:

    1、kubernetes中pod的创建

    2、pod上标签的使用

    一、kubernetes中pod的创建

    在实际使用中,Pod通常是伴随着Deployment等controller的创建而创建的,单独创建Pod的场景很少。推荐使用yaml文件来创建。下面是一个简单的Pod的yaml文件内容:

    apiversion: v1
    kind: Pod
    metadata:
      name: kubia-pod-demo
    spec:
      containers:
        image: nginx
        name: nginx-demo
        ports:
          containerPort: 8080
          protocol: TCP

    先对上面的yaml文件进行详细说明。kubernetes中创建对象的yaml文件都分为三部分:typedata、metadata和spec。实际查看对象时,还有一个status,这是运行中的对象才有的属性。

    typedata对应上面的apiversion和kind,它定义这个yaml文件创建的是什么对象,上面就是创建Pod对象。

    metadata对应上面的三四行,它定义这个对象的名字、标签、命名空间等元数据信息。

    spec对应上面第五行下面的部分,它定义这个对象的实际属性,比如镜像、存储卷等。注意上面指明的端口8080只是informational展示性的,相当于一个声明,但实际不会起作用。

    status在kubernetes中查看对象时才会有,它用来展示对象的状态及IP等信息,内容是变化的。

    在kubernetes中只需执行下面创建命令:

    kubectl create -f kubia-pod-demo.yaml

    就可创建出一个pod,此时可以通过kubectl get pods命令来查看创建出来的pod。-f命令用于从yaml/json文件创建任何资源,即文件中定义了什么对象就创建什么对象。

    如果想查看某个Pod的yaml文件,可以用如下命令:

    kubectl get pod kubia-pod-demo -o yaml

    查看pod中的日志: kubectl logs kubia-pod-demo

    二、Pod上标签的使用

    上面是创建了一个pod,可以直接通过名字来查看,但如果是实际使用中,系统中会有很多个服务,每个服务有多个pod,这时如果能对每个pod进行分类规整,就会很方便查看和操作。标签就是用来实现该功能的。

    首先看标签的使用,在上面创建pod的yaml文件中这样修改:

     1 apiversion: v1
     2 kind: Pod
     3 metadata:
     4   name: kubia-pod-demo1
     5   labels:
     6     usetype: demo
     7 spec:
     8   containers:
     9     image: nginx
    10     name: nginx-demo
    11     ports:
    12       containerPort: 8080
    13       protocol: TCP

    用这个yaml文件创建的pod就被打上标签了,可以用下面的命令查看:

    kubectl get pods --show-labels

    还可以用标签来查询特定的pod:

    kubectl get pod -l usetype=demo

    还可以查询没有特定标签的pod:

    kubectl get pod -l '!usetype'

    为已有对象新增标签:

    kubectl label pod xxpodNamexx usetype=demo

    修改对象已有的标签,比新增多了个 --overwrite

    kubectl label pod xxpodNamexx usetype=test --overwrite

    标签可以筛选pod,这就为对某一类pod进行集中操作提供了可能。而且标签不止可以应用在pod上,kubernetes中的其他对象也可以用标签进行标记。本文先到这,下一篇学习pod的注解和命名空间。

  • 相关阅读:
    CSS3新特性
    CSS简述
    HTML5新属性
    Python学习笔记(十二)
    Python学习笔记(十一)
    Python学习笔记(十)
    Python学习笔记(九)
    Python学习笔记(八)
    Python学习笔记(七)
    Python学习笔记(六)
  • 原文地址:https://www.cnblogs.com/zzq6032010/p/14128200.html
Copyright © 2011-2022 走看看