kubernetes 学习之路--第四天

kubernetes 资源清单

  • 资源:对象
    • workload(工作负载型):Pod(控制器运行),ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob
    • 服务发现及均衡:service,Ingress
    • 配置与存储:Volume
      • ConfigMap,Secret
      • DowenwardAPI
    • 集群级资源
      • Namespace,Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding
    • 元数据型资源
      • HPA,PodTemplate,LimitRange
获取pod信息并输出位yaml文件
kubectl get pod myapp-xxx -o yaml
apiserver 仅接收JSON格式的资源定义,yaml格式提供配置清单,apiserver可自动将其转化为json格式,而后再提交;
大部分资源的配置清单有5个一级字段组成:
    apiVersion:group/version 设定资源所属的api版本,获取当前系统支持的版本使用下面的命令
     kubectl api-versions    ###标记为beta为公测版本
    kind:资源类型,指定标记创建的资源属于什么类型
    metadata: 指定资源元数据
        name:对象名称
        namespace:对象属于哪个名称空间
        labels:标签,键值数据
        annotations:资源注解
        每个资源的引用PATH
         /api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME     ###大写表示需要替换成本机的名称
     spec: 定义目标期望的状态,我们希望pod成为什么状态
     status:当前状态,由kubernetes集群维护
kubectl explain pod  查看pod资源应该怎么使用清单定义
kubectl explain pod.metadata  查看pod下metadata字段怎么指定
      

使用yaml文件创建一个Pod中运行两个容器资源,容器存储暂时没有使用同一个共享的存储卷

##文件名称:demo-pod.yaml
apiVersion:v1
kind:Pod
metadata:
 name:pod-demo
 namespace:default
 labels:#键值对 ##写法一{app:myapp}
   app:myapp
 spec:
   nodeSelector: {disktype:ssd}   ##节点选择器,指定pod运行在ssd的节点上
   nodeName: node1   ###指定运行的节点
   containers:
   - name:myapp
     image:myapp:v1
     ports:  ##定义暴露的端口
     - name: http
       containerPort:80
     - name:https
       containerPort:443
     imagePullPolicy: ##Always,Never,IfNotPresent 镜像拉取策略,如果镜像标签是latest 默认Always,其它为IfNotPresent
   - name:busybox
     image:busybox:latest   ##默认运行的命令是 /bin/sh
     command: #指定容器运行的命令,列表格式 ##写法1、[“/bin/sh”,"-c","sleep 3600"] 
     - "/bin/sh"
     - "-c"
     - "echo $(date) >> /usr/share/nginx/html/index.html; sleep 5"

#使用yaml生成pod
kubectl create -f demo-pod.yaml
kubectl get pods
kubectl logs pod-demo myapp  #查看myapp容器的日志信息
kubectl delete pod pod-demo  ##删除pod
kubectl delete -f demo-pod.yaml ##删除yaml文件中的pod
kubectl get pods --show-labels
kubectl get pods -L app    ##显示标签值
kubectl get pods -l app   ##过滤拥有app的pod
kubectl label pods pod-demo release=canary --overwrite #打标签
kubectl get pods -l "release in (canary,app)"


修改镜像中的默认应用
字段:comman,args
在这里插入图片描述
在这里插入图片描述

  • Pod的生命状态:
    • 状态: Pending,Running,Failed,Secceeded,Unknown
    • Pod生命周期中的重要行为:
      • 初始化容器
      • 容器探测:
        • liveness 探测容器是否存活
        • readiness
  • restartPolicy: Pod重启策略
    Always,OnFailure,Never 默认是Always
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值