zoukankan      html  css  js  c++  java
  • k8s资源清单定义入门

    1.资源分类

    a.workload型资源:service、pod、deployment、ReplicaSet、StatefulSet、Job、Cronjob;
    b.服务发现及服务均衡资源型资源:Service、Ingress;
    c.配置与存储型资源:Volume、ConfigMap、Secret、DownwardAPI、CSI(容器存储接口,可以扩展各种第三方的存储卷)
    d.集群级资源:Namespace、Node、Role、rolebinding、clusterrolebinding;
    e.元数据型资源:HPA、podtemplate、limitrange(限制资源的如cpu、内存等)
    查看pod的yaml格式清单
    kubectl get pods myapp-9b4987d5-lwqnj -o yaml
    spec:  # 规格、特性,用户期望的状态
      tolerations: # 容忍度
    status:# 显示当前资源的当前状态
    

    2.创建资源的方法

      apiserver仅接受json格式的资源定义;yaml可以无损转换为json,所以使用yaml格式提供配置清单,apiserver可自动将其转换为json格式,然后再提交.使用命令kubectl run,最终也是自动转为json格式的资源定义.

    大部分资源的配置清单包含:

    a.apiVersion:表示属于哪个api群组和版本,可以通过kubectl api-versions查看,显示方式为group/version
    b.Kind:资源类别,有pod、deloyment等
    c.metadata:元数据,包括:
    1)name:在同一资源下name是必须唯一的;
    2)namespace:名称空间
    3)labels:标签
    4)annotations:资源注解
    5)selfLink:每个资源引用的PATH,格式为/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
    6)spec:定义用户期望的目标状态(disired state)
    7)status:表示当前状态,让当前状态向期望的目标状态靠近,本字段由k8s集群维护
    
    # pod怎么定义,即查看帮助手册
    kubectl explain pods
    # 查看medadata下有哪些字段可以用
    kubectl explain pod.metadata
    kubectl explain pods.spec.containers
    

    3.用yaml创建pod

    mkdir manifests && cd manifests/
    cat pod-demo.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-demo
      namespace: default
      labels:
        itsDeploy: myapp
    spec:
      containers: 
      - name: myapp
        image: ikubernetes/myapp:v1
      - name: busybox
        image: busybox
        command:
        - "/bin/sh"
        - "-c"
        - "echo $(date) >> /usr/share/nginx/html/index.html; sleep 5"
    
    # 命令式资源清单,也叫声明式资源清单
    kubectl create -f maniteste/pod-demo.yaml
    # 1个pod跑2个容器,"-"表示某个参数可以有多个,譬如containers中的name
    kubectl describe pods pod-demo
    # 查看日志
    kubectl logs pod-demo myapp
    # 进入运行中的容器,当然我创建的这个进不去,因为镜像太小,不支持
    kubectl exec -it pod-demo -c myapp -- /bin/bash
    # 删除pod
    kubectl delete -f maniteste/pod-demo.yaml
    

    参考博客:http://blog.itpub.net/28916011/viewspace-2213934/

    python2.7源码安装MySQLdb:https://blog.csdn.net/lovemysea/article/details/79881382

  • 相关阅读:
    并发数据库事务缺锁导致的数据不一致情况:丢失更新,脏读,不可重复读,幻读
    Spring boot 如何读取jar包外面的properties文件
    安卓自定义组合控件--toolbar
    [转]ThoughtWorks(中国)程序员读书雷达
    [转]Design Pattern Interview Questions
    [转]Design Pattern Interview Questions
    [转]Design Pattern Interview Questions
    [转]Design Pattern Interview Questions
    OpenCV 使用C++获取摄像头数据并保存示例
    [原]opencv图像裁剪
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/11030157.html
Copyright © 2011-2022 走看看