• kubectl命令使用


    语法:
     
    kubectl  [command]  [TYPE] [NAME]  [flags]
     
    1 command:子命令,用于操作Kubernetes集群资源对象的命令,如create, delete, describe, get, apply
     
    2 TYPE:资源对象的类型,如pod, service, rc, deployment, node等,可以单数、复数以及简写(pod, pods, po/service,
    services, svc)
     
    3 NAME:资源对象的名称,不指定则返回所有,如get pod 会返回所有pod, get pod  nginx, 只返回nginx这个pod
     
    4 flags:kubectl子命令的可选参数,例如-n 指定namespace,-s 指定apiserver的URL
     
    资源对象类型列表
     
    可以用这个命令获取到:
     
      kubectl explain
     
        
      kubectl api-resources
     
     
    名称                                                                       简写
    componentsstatuses                                                       cs
    daemonsets                                                               ds
    deployment                                                               deploy
    events                                                                   ev
    endpoints                                                                ep
    horizontalpodautoscalers                                                 hpa
    ingresses                                                                ing
    jobs
    limitranges                                                              limits
    nodes                                                                    no
    namspaces                                                                ns
    pods                                                                     po
    persistentvolumes                                                        pv
    persistentvolumeclaims                                                   pvc
    resourcequotas                                                           quota
    replicationcontrollers                                                   rc
    secrets
    serviceaccounts                                                           sa
    services                                                                 svc
    

      

     
    特殊用法:
    kubectl get pods pod1 pod2
    kubectl get pod/pod1 rc/rc1
    kubectl create -f pod1.yaml -f rc1.yaml  -f service1.yaml
     
     
    kubectl子命令
    主要包括对资源的创建、删除、查看、修改、配置、运行等
     
    kubectl --help 可以查看所有子命令
     
    kubectl参数
    kubectl options 可以查看支持的参数,例如--namespace指定所在namespace
     
    kubectl输出格式
    kubectl命令可以用多种格式对结果进行显示,输出格式通过-o参数指定:
     
     
    -o支持的格式有
     
    输出格式                                         说明
    custom-columns=<spec>                        根据自定义列名进行输出,逗号分隔
    custom-columns-file=<filename>               从文件中获取自定义列名进行输出
    json                                         以JSON格式显示结果
    jsonpath=<template>                          输出jasonpath表达式定义的字段信息
    jasonpath-file=<filename>                    输出jsonpath表达式定义的字段信息,来源于文件
    name                                         仅输出资源对象的名称
    wide                                         输出更多信息,比如会输出node名
    yaml                                         以yaml格式输出
    

       

    举例:
    kubectl get pod -o wide
    kubectl get pod -o yaml
    kubectl get pod -o custom-columns=NAME:.metadata.name,RESC:.metadata.resourceVersion
    kubectl get pod --sort-by=.metadata.name  //按name排序
    

       

    kubectl命令示例:
    1)创建资源对象
    根据yaml文件创建service和deployment
    kubectl create -f my-service.yaml -f my-deploy.yaml
    

       

    也可以指定一个目录,这样可以一次性根据该目录下所有yaml或json文件定义资源
    kubectl create -f <directory>
    

       

    2)查看资源对象
    查看所有pod
    kubectl get pods
    

      

    查看deployment和service
    kubectl get deploy,svc
    

       

    3)描述资源对象
     
    显示node的详细信息
    kubectl describe nodes <node-name>
    

      

    显示pod的详细信息
    kubectl describe pods/<pod-name>
    

      

    显示deployment管理的pod信息
    kubectl describe pods <deployment-name>
    

       

    4)删除资源对象
     
    基于yaml文件删除
    kubectl delete -f pod.yaml
    

       

    删除所有包含某个label的pod和service
    kubectl delete po,svc -l name=<lable-name>
    

      

    删除所有pod

    kubectl delete po --all
    

       

    5)执行容器的命令
     
    在pod中执行某个命令,如date
    kubectl exec <pod-name> date  //pod-name如果不加,默认会选择第一个pod
    

      

    指定pod的某个容器执行命令
    kubectl exec <pod-name>  date
     
    
    [root@weifeng04 ~]# kubectl exec  frontend-141477217-42863 ls
    
    BUILDING.txt     NOTICE        RUNNING.txt  include  native-jni-lib  work
    CONTRIBUTING.md  README.md    bin         lib      temp
    LICENSE         RELEASE-NOTES    conf         logs     webapps
    [root@weifeng04 ~]# kubectl exec  frontend-141477217-42863 pwd
    /usr/local/tomcat
    [root@weifeng04 ~]#
    [root@weifeng04 ~]# kubectl exec  frontend-141477217-42863 date
    Sat Nov  3 12:23:32 UTC 2018
    

      

     
    进入到pod的容器里
    kubectl exec -it <pod-name>   bash
    

     

    [root@weifeng04 ~]# kubectl exec  -it frontend-141477217-42863 bash
    root@frontend-141477217-42863:/usr/local/tomcat# ls
    BUILDING.txt     LICENSE  README.md     RUNNING.txt  conf     lib   native-jni-lib  webapps
    CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          include  logs  temp         work
     
    

      

    6)查看容器日志
     
    kubectl logs <pod-name>
    
    [root@weifeng04 ~]# kubectl logs frontend-141477217-42863
    03-Nov-2018 05:44:29.442 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.34
    03-Nov-2018 05:44:29.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Sep 4 2018 22:28:22 UTC
    03-Nov-2018 05:44:29.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.34.0
    03-Nov-2018 05:44:29.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
    03-Nov-2018 05:44:29.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-862.14.4.el7.x86_64
    03-Nov-2018 05:44:29.450 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
    03-Nov-2018 05:44:29.451 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:      
    

      

    可以动态查看,类似于tail -f
     
    kubectl logs -f <pod-name> -c <container-name>
    

      

     
  • 相关阅读:
    BPM已经全面开启
    终于理解集线器、交换机、路由器之间的区别了
    Linux系统桥接模式下配置静态ip地址
    理解并手写Spring MVC框架
    Java 8 Funciton、Consumer、Predicate的作用及用法
    你想了解的分布式文件系统HDFS,看这一篇就够了
    分布式处理框架Hadoop的安装与使用
    CentOS7 中常用命令
    VMware安装Centos7并联网使用
    理解Spring AOP的实现方式与思想
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/10037763.html
Copyright © 2020-2023  润新知