kubectl 命令使用

lance 2020-03-26 PM 225℃ 0条

语法

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 支持的格式有
82748-79von2c98fw.png
 
举例:

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

 
进入到 pod 的容器里

kubectl exec -it <pod-name> bash

 
6)查看容器日志

kubectl logs <pod-name>

 
可以动态查看,类似于 tail -f

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

标签: linux, kubernetes, k8s

非特殊说明,本博所有文章均为博主原创。

觉得文章不错,打赏一点吧,1分也是爱😀

WeChat Pay

微信打赏

Alipay

支付宝打赏

评论啦~