kubectl命令總結

語法:node

kubectl [command] [TYPE] [NAME] [flags]nginx

1 command:子命令,用於操做Kubernetes集羣資源對象的命令,如create, delete, describe, get, apply等docker

2 TYPE:資源對象的類型,如pod, service, rc, deployment, node等,能夠單數、複數以及簡寫(pod, pods, po/service,json

services, svc)api

3 NAME:資源對象的名稱,不指定則返回全部,如get pod 會返回全部pod, get pod nginx, 只返回nginx這個podbash

4 flags:kubectl子命令的可選參數,例如-n 指定namespace,-s 指定apiserver的URLapp

資源對象類型列表ide

能夠用這個命令獲取到:jsonp

kubectl explain或kubectl api-resourcesspa

名稱 簡寫

componentsstatuses cs

daemonsets ds

deployment deploy kubectl get deyploy (也就是查看他的rc)

events ev kubectl get ev (查看他的事件)

endpoints ep kubectl get ep (查看ip和端口,也叫端點)

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 #能夠這樣查看多個pod

kubectl get pod/pod1(pod名字) rc/rc1(rc名字) #同時查看pod或rc

kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml #也可同時建立多個資源

kubectl子命令:

主要包括對資源的建立、刪除、查看、修改、配置、運行等 #好比get、create等等

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 #加-o能夠把node列出來,也就是pod在哪一個節點上能列出來

kubectl get pod -o yaml #以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> #也就是把這個額目錄下全部的yaml或json一次性的建立,定義這些資源

2)查看資源對象

查看全部pod

kubectl get pods

查看deployment和service

kubectl get deploy,svc #加個逗號可同時查看

3)描述資源對象 #好比一些錯誤信息均可以看到的

顯示node的詳細信息

kubectl describe nodes <node-name>

顯示pod的詳細信息

kubectl describe pods/<pod-name> #針對指定的pod要加一個斜槓

顯示deployment管理的pod信息

kubectl describe pods <deployment-name>

4)刪除資源對象

基於yaml文件刪除

kubectl delete -f pod.yaml #固然也能夠直接 kubectl delete pod或rc或svc 這樣刪除

刪除全部包含某個label的pod和service

kubectl delete po,svc -l name=<lable-name> #配置文件中定義過pods的最小個數和最大個數,會刪不掉。不太好用

刪除全部pod

kubectl delete po --all

5)執行容器的命令

在pod中執行某個命令,如date命令

kubectl exec <pod-name> date #pod-name若是不加,默認會選擇第一個pod

指定pod的某個容器執行命令

kubectl exec <pod-name> date

進入到pod的容器裏

kubectl exec -it <pod-name> bash #跟docker的進入命令差很少

6)查看容器日誌

kubectl logs <pod-name>

能夠動態查看,相似於tail -f

kubectl logs -f <pod-name> -c <container-name>

相關文章
相關標籤/搜索