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

    1、k8s中的资源

    什么叫资源?
    k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象
    
    在k8s中有哪些资源?
    工作负载型资源(workload):
        Pod ReplicaSet Deployment StatefulSet DaemonSet Job CronJob (ReplicationController在v1.11版本被废弃)
    
    服务发现及负载均衡型资源:
          ServiceDiscovery LoadBalance  Service Ingress, ...
    
    配置与存储型资源:
        Volume(存储卷) CSI(容器存储接口,可以扩展各种各样的第三方存储卷)
    
    特殊类型的存储卷:
        ConfigMap(当配置中心来使用的资源类型)Secret(保存敏感数据) DownwardAPI(把外部环境中的信息输出给容器)
    
    以上这些资源都是配置在名称空间级别。
    
    
    
    集群级资源:
        Namespace  Node  Role  ClusterRole  RoleBinding(角色绑定)  ClusterRoleBinding(集群角色绑定)
    
    元数据型资源:
        HPA(Pod水平扩展)  PodTemplate(Pod模板,用于让控制器创建Pod时使用的模板)  LimitRange(用来定义硬件资源限制的)


    2、k8s的资源清单

    什么是资源清单:
    在k8s中,一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单
    
    资源清单的格式:
    apiVersion: group/apiversion:   如果没有给定group名称,那么默认为croe,可以使用kubectl api-versions 获取当前k8s版本上所有的apiVersion版本信息(每个版本可能不同)
    
    kind:  资源类别
    
    metadata: 资源元数据
      name
      namespace  #k8s自身的namespace
      lables
         annotations #主要目的是方便用户阅读查找
    
    spec:期望的状态(disired state)
    
    status:当前状态,本字段有kubernetes自身维护,用户不能去定义


    [root@master ~]# kubectl get pods myapp-9b4987d5-2k86k -o yaml    #查看一个pod的信息,以yaml格式输出
    [root@master ~]# kubectl explain pod    #查看资源定义文档的格式
    [root@master ~]# kubectl explain pod.spec    #可以一级一级查看


    3、创建一个配置清单实例

    apiVersion: v1
    kind: Pod                              #定义pod
    metadata:
      name: pod-demo                       #pod的名称,全局唯一
      namespace: default
      labels:
        app: myapp
        tier: frontend
    spec:
      containers:
      - name: myapp                        #容器名称
        image: ikubernetes/myapp:v1        #容器镜像
      - name: busybox                      #容器名称
        image: busybox:latest              #容器镜像
        command:                           #执行的命令
        - "/bin/sh"
        - "-c"
        - "sleep 3600"


    [root@master manifests]# kubectl create -f pod.demo.yaml         #从文件加载,创建一个pod
    
    [root@master ~]# kubectl describe pods pod-demo                  #查看pod启动信息    
        
    [root@master manifests]# kubectl logs pod-demo busybox           #查看一个pod内容器的日志    
        
    [root@master ~]# kubectl exec -it pod-demo -c myapp -- /bin/sh    #交互式进入pod名字为pod-demo里的myapp容器
        
    [root@master manifests]# kubectl delete -f pod.demo.yaml          #删除用这个文件所定义的资源(pod,等)
  • 相关阅读:
    streamsets 集成 cratedb 测试
    streamsets k8s 部署试用
    streamsets rest api 转换 graphql
    StreamSets sdc rpc 测试
    StreamSets 相关文章
    StreamSets 多线程 Pipelines
    StreamSets SDC RPC Pipelines说明
    StreamSets 管理 SDC Edge上的pipeline
    StreamSets 部署 Pipelines 到 SDC Edge
    StreamSets 设计Edge pipeline
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12713209.html
Copyright © 2011-2022 走看看