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,等)
  • 相关阅读:
    正则表达式
    文件读写
    列表和数组变量
    Perl基础
    [转] bias和variance
    Chapter 1
    Come back to CNblogs
    SentenceGeneration
    句子生成器
    ant相关操作
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12713209.html
Copyright © 2011-2022 走看看