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>

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM