Kubernetes入门(三)

版权声明:欢迎转载,转载请注明出处! https://blog.csdn.net/miss1181248983/article/details/87708386

30.4 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 api-resouces
名称 简写
componentsstatuses cs
daemonsets ds
deployment deploy
events ev
ebdpoints ep
horizontalpodautoscalers hpa
ingresses ing
jobs
limitranges limits
nodes no
namespaces ns
pods po
persistentvolumes pv
persistentvolumeclaims pvc
resourcequotas quato
replicationcontrollers rc
secrets
serviceaccounts sa
services svc
  • 特殊用法:
# kubectl get pod
NAME          READY     STATUS    RESTARTS   AGE
mysql-f16r2   1/1       Running   1          3d
myweb-f8xw9   1/1       Running   1          3d

# kubectl get pod mysql-f16r2
NAME          READY     STATUS    RESTARTS   AGE
mysql-f16r2   1/1       Running   1          3d
# kubectl get pod/myweb-f8xw9 rc/myweb
NAME             READY     STATUS    RESTARTS   AGE
po/myweb-f8xw9   1/1       Running   1          3d

NAME       DESIRED   CURRENT   READY     AGE
rc/myweb   1         1         1         3d
# kubectl create -f pod1.yaml -f rc1.yaml -f svc1.yaml              #可同时创建多个资源对象

kubectl子命令主要包括对资源的创建、删除、查看、修改、配置、运行等。

kubectl --help 可以查看所有子命令。

kubectl options 可以查看支持的参数,例如 --namespace 指定namespace。


命令输出格式

kubectl命令可以用多种格式对结果进行显示,输出格式通过 -o 参数指定。

  • -o 支持的格式有:
输出格式 说明
custom-columns= 根据自定义列名进行输出,逗号分隔
custom-columns-file= 从文件中获取自定义列名进行输出
json 以JSON格式显示结果
jsonpath= 输出jsonpath表达式定义的字段信息
jsonpath-file= 输出jsonpath表达式定义的字段信息,来源于文件
name 仅输出资源对象的名称
wide 输出更多信息,比如会输出node名
yaml 以yaml格式输出
  • 举例:
# kubectl get pod -o wide

# kubectl get pod -o yaml

# kubectl get pod --sort-by=.metadata.name                #按name排序输出

# kubectl get pod -o custom-columns=NAME:.metadata.name,RESC:.metadata.resourceVersion

kubectl命令示例

  • 创建资源对象:

根据yaml文件创建service和deployment

# kubectl create -f my-service.yaml -f my-deploy.yaml

也可以知道一个目录,这样可以根据该目录下所有yaml或json文件一次性定义资源

# kubectl create -f <directory>
  • 查看资源对象:

查看所有pod

# kubectl get pod

查看deployment和service

# kubectl get deploy,svc
  • 描述资源对象:

显示pod的详细信息

# kubectl describe pod <pod-name>

显示node的详细信息

# kubectl describe node <node-name>

显示deployment管理的pod信息

# kubectl describe pod <deployment-name>
  • 删除资源对象:

基于yaml文件删除

# kubectl delete -f pod.yaml

删除所有包含某个label的pod和service

# kubectl delete po,svc -l name=<label-name>

删除所有pod

# kubectl delete po --all
  • 执行容器的命令:

在pod中执行某个命令,如date

# kubectl exec <pod-name> date

进入到pod的容器里

# kubectl exec -it <pod-name> bash
  • 查看容器日志:
# kubectl logs <pod-name>

动态查看

# kubectl logs -f <pod-name>

猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/87708386