zoukankan      html  css  js  c++  java
  • 1.k8s.资源清单

    #k8s常用资源

    • 工作负载:Pod,rs(ReplicasSet),deploy(Deployment),sts(StatefulSet),ds(DaemonSet),Job,Cronjob
    • 服务发现及负载均衡:svc(Service), ing(Ingress)
    • 配置与存储:Volume,pv( persistentvolumes ),pvc,cm(ConfigMap),Secret,DownwardAPI
    • 集群级: ns(Namespace),Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
    • 元数据: HPA,PodTemplate,LimitRange

    #资源清单格式

    apiVersion: group/apiversion  #API版本
    kind:        #资源类型
    metadata:    #元数据对象
      name        #如Pod名称
      namespace   #命名空间默认default
      lables      #标签
    Spec:        #详细对象
      containers:#容器列表
      - name      #容器名称
        image     #镜像
    

    . #获取 apiversion 版本信息 kubectl api-versions
    . #获取字段设置帮助文档 kubectl explain pod kubectl explain pod.kind

    主要资源配置清单:

    apiVersion,kind,meadata,spec,status
    

    apiVersion

    • 定义API版本,格式为groupname/version
    • 用kubectl api-versions获取当前k8s版本apiVersion信息

    kind

    • Kind定义资源类型和角色,如Namespace、Pod、Service、Deployment

    metadata

    Metadata元数据对象,分为两大类:

    • 名称空间
      namespace:名称空间,默认default
      name:对象名称,名称空间的同一类型中必须唯一
      uid:唯一表示符

    • 常用可选字段
      labels:对象标签,键值数据,常被用作挑选条件
      annotation:作为挑选条件,作为labels的补充
      resourceVersion:当前对象的内部版本标识符
      generation:用于表示当前对象目标状态的代码
      creationTimestamp:当前对象创建日期的时间戳
      deletionTimestamp:当前对象删除日期的时间戳

    status 当前状态,k8s集群维护,用户不能修改

    spec 详细对象

     #spec常用资源类型
    spec.containers.name:pod的名称,必须字段,名称唯一且创建后不可以被修改
    spec.containers.image :镜像仓库路径/镜像名称(镜像标签)
    spec.containers.image.imagePullPolicy :镜像下载策略
        Always:总是下载
        Never:从不下载
        IfNotPresent:本地没有就下载,默认项
        镜像标签是latest则总会是"Always",且一旦被创建不允许改变
    spec.containers.ports:容器公开的端口列表
    spec.containers.ports.containerPort:暴露的端口,是额外的信息,对端口是否暴露没影响
    spec.containers.ports.hostPort:主机上公开端口
    spec.containers.ports.protocol:端口协议TCP或UDP,默认TCP
    spec.containers.ports.hostIP:指定要绑定的主机
    spec.containers.command:运行程序,类似于docker中的entrypiont,命令不会运行在shell中
    spec.containers.args:向docker镜像中传递参数,会替换docker镜像中cmd命令,引用变量使用
    spec.containers.volumeMounts.mountPath:容器挂载存储卷的路径,路径不能包含':' 符号
    spec.containers.volumeMounts.subPath:容器挂载的存储卷的 子路径
    spec.containers.volumeMounts.readOnly:只读,默认为false
    spec.containers.resources.limits:资源限制
    spec.containers.resources.limits.cpu :CPU上限,可以短暂超过,容器也不会被停止
    spec.containers.resources.limits.memory:内存上限
    spec.containers.resources.requests:资源需求
    spec.containers.resources.requests.cpu:CPU请求, 也是调度 CPU 资源的依据, 可以超过
    spec.containers.resources.requests.memory:内存请求,可以超过;超过时容器可能在Node内存不足时清理
    spec.containers.workingDir: 容器工作目录
    spec.nodeSelector:指定Pod调度节点
    spec.restartPolicy:容器重启策略三种 Always(退出就重启)、OnFailure(状态为错误时重启)、Never(不重启)
    spec.imagePullSecrets  pull镜像时使用cecrets名称
    

    #实例 通过清单文件创建Pod

    # pod-demo.yaml
    apiVersion: v1
    kind: Pod
    metadata:
     name: pod-demo
     namespace: default
     labels:
       app: myapp
    spec:
     containers:
     - name: test
       image: busybox:latest
       command:
       - "/bin/sh"
       - "-c"
       - "echo -n 'running at ' && date +%F' '%T && sleep 20"
    
    #创建pod
    kubectl create -f  pod-demo.yaml
    
    #查看pod
    kubectl get pod pod-demo
    kubectl get pod pod-demo -o wide
    #查看详情
    kubectl describe pod pod-demo
    #查看logs
    kubectl logs pod-demo -c test
    
    #删除
    kubectl delete -f pod-demo.yaml
    
    #pod会反复重启,因为命令sleep 20结束
    

    Blog地址 https://www.cnblogs.com/elvi/p/11755617.html
    本文git地址 https://gitee.com/alivv/k8s/tree/master/notes

  • 相关阅读:
    jstl嵌套以及输出json的逗号
    关闭win10 更新以后自动重启
    maven 配置错误。
    SQL SERVER 订阅发布在restore DB以后的问题
    Unable to convert MySQL date/time value to System.DateTime
    sql server恢复卡在restoring的解决方法
    打开Excel时总是运行Windows Installer(Visual studio)解决方法
    单元测试用excel connstr
    node.js调试
    javascript数组对象实例方法
  • 原文地址:https://www.cnblogs.com/elvi/p/11755617.html
Copyright © 2011-2022 走看看