语法: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>