zoukankan      html  css  js  c++  java
  • Kubernetes(k8s)Pod的YAML基础编写

    Kubernetes中的Pod一般都是采用yaml编写

    apiVersion: group/apiversion  # 如果没有给定 group 名称,那么默认为 core,可以使用 kubectl api-versions # 获取当前 k8s 版本上所有的 apiVersion 版本信息( 每个版本可能不同 )
    kind:       #资源类别
    metadata:  #资源元数据
       name
       namespace
       lables
       annotations   # 主要目的是方便用户阅读查找
    spec: # 期望的状态(disired state)
    status:# 当前状态,本字段有 Kubernetes 自身维护,用户不能去定义
    

    资源清单的常用命令

    获取 apiversion 版本信息

    [root@k8s-master01 ~]# kubectl api-versions 
    admissionregistration.k8s.io/v1beta1
    apiextensions.k8s.io/v1beta1
    apiregistration.k8s.io/v1
    apiregistration.k8s.io/v1beta1
    apps/v1
    ......(以下省略)
    

    获取资源的 apiVersion 版本信息

    [root@k8s-master01 ~]# kubectl explain pod
    KIND:     Pod
    VERSION:  v1
    .....(以下省略)
    [root@k8s-master01 ~]# kubectl explain Ingress
    KIND:     Ingress
    VERSION:  extensions/v1beta1
    

    获取字段设置帮助文档 

    [root@k8s-master01 ~]# kubectl explain pod
    KIND:     Pod
    VERSION:  v1
    DESCRIPTION:
         Pod is a collection of containers that can run on a host. This resource is
         created by clients and scheduled onto hosts.
    FIELDS:
       apiVersion    <string>
         ........
         ........
    

    字段配置格式

    apiVersion <string>          #表示字符串类型
    metadata <Object>            #表示需要嵌套多层字段
    labels <map[string]string>   #表示由k:v组成的映射
    finalizers <[]string>        #表示字串列表
    ownerReferences <[]Object>   #表示对象列表
    hostPID <boolean>            #布尔类型
    priority <integer>           #整型
    name <string> -required-     #如果类型后面接 -required-,表示为必填字段
    

    通过定义清单文件创建 Pod【myapp这个是nginx镜像】(这地方有个错误哦,下面讲)

    apiVersion: v1
    kind: Pod
    metadata:
      name: myapp-pod
      labels:
        app: myapp
        version: v1
    spec:
      containers:
      - name: app
        image: wangyanglinux/myapp:v1
      - name: test
        image: wangyanglinux/myapp:v1

    错误:因为这回事nginx容器,在同一Pod中,只用一个80端口可以,所以,一个会一直报错。看下面截图

    【一个在运行,一个在一直报错重启。】

    运行Pod.yaml文件

    kubectl apply -f pod.yaml 
    

    下面看详细步骤解析

    查看Pod的详细信息

    kubectl describe pod myapp-pod
    

    查看Pod的日志

    kubectl log myapp-pod -c test
    

    删除Pod

    kubectl delete pod myapp-pod

    重新编写yaml文件

    apiVersion: v1
    kind: Pod
    metadata:
      name: myapp-pod
      labels:
        app: myapp
        version: v1
    spec:
      containers:
      - name: app
        image: wangyanglinux/myapp:v1
    

    测速访问

  • 相关阅读:
    Spring中bean的生命周期
    HashMap与HashTable原理及数据结构
    HashMap 与HashTable的区别
    2 rocketmq mqadmin 的用法详解
    搭建RocketMQ踩的坑-内存不足
    解决Hash碰撞冲突方法总结
    大端BigEndian、小端LittleEndian与字符集编码
    Linux中最常用的JAVA_HOME配置
    WIP_DISCRETE_JOBS.STATUS_TYPE
    Inventory > INV.MTL_MATERIAL_TRANSACTIONS Show Error Msg: ORA-20100: File lxxx.tmp creation for FND_FILE failed.
  • 原文地址:https://www.cnblogs.com/heian99/p/12257681.html
Copyright © 2011-2022 走看看