3.1 以YAML或JSON描述文件创建pod

  1. 前提条件

    0.0 环境准备
    0.1 安装docker
    0.2 安装k8s
    kubectl run kubia --image=nuptaxin/kubia --port=8080

  2. 检查现有pod的YAML描述文件
    • apiVersion:YAML描述文件所使用的k8s API版本(1.x展示的v1)
    • kind:k8s对象/资源类型
    • metadata:pod元数据(名称、标签和注解等)
    • spec:pod规格/内容(pod的容器列表、volume等)
    • status:pod及其内部容器的详细状态【此部分包含只读的运行时数据,创建新的pod时,永远不需要提供status部分】
      kubectl get po kubia -o yaml
  3. 为pod创建一个简单的YAML描述文件:kubia-manual.yaml(注意冒号后面一定要跟着空格,不能使用制表符!否则语法无法识别)
    1. 指定容器端口(在pod定义中指定端口纯粹是展示性的!!!)
    2. po.spec.containers.name 是容器的名称,唯一的,主要用于网络DNS LABAL
    3. po.metadata.name是pod的名称,唯一的
apiVersion: v1
kind: Pod
metadata:
  name: kubia-manual
spec:
  containers:
  - image: nuptaxin/kubia
    name: kubia-yaml
    ports:
    - containerPort: 8080
      protocol: TCP
  1. 使用kubectl explain在发现可能的API对象字段(当从头创建一个pod mainfest时,可以从请求kubectl来解释pod开始)
    kubectl explain pods
    kubectl explain pod.spec
  2. 使用kubectl create来创建pod
    1. 使用kubectl create来创建pod(-f用于从YAML或JSON文件创建任何资源)
      kubectl create -f kubia-manual.yaml
    2. 得到运行中pod的完整定义
      1. YAML
        kubectl get po kubia-manual -o yaml
      2. JSON
        kubectl get po kubia-manual -o json
    3. 在pod列表中查看新创建的pod
      kubectl get po
  3. 查看应用程序日志(只能获取仍然存在的pod的日志,pod删除时日志也会被删除)
    1. 使用docker命令获取容器日志(docker ps 获取容器Id)
      docker logs
    2. 使用kubectl logs命令获取pod日志(pod中单容器时)
      kubectl logs kubia-manual
    3. 获取多容器pod的日志时指定容器名称
      kubectl logs kubia-manual -c kubia-yaml
  4. 向pod发送请求
    1. 将本地网络端口转发到pod中的端口(不用service,用于连接pod测试或调试)
      kubectl port-forward kubia-manual 8080:8080 --address 0.0.0.0
    2. 通过端口转发连接到pod
      http://8.130.177.188:8080
  5. 资源清理
    kubectl delete pod kubia
    kubectl delete pod kubia-manual

你可能感兴趣的:(Kubernetes,in,Action,学习笔记,json,docker,k8s,yaml,kubernetes)