kubectl作为客户端的CLI工具,可以让用户通过命令对kubernetes集群进行操作。

kubectl语法

$ kubectl [command] [type] [name] [flags]

  • command: 子命令,用于操作kubernetes集群资源对象的命令, create、delete、describe、get、apply、etc.
  • type: 资源对象的类型。
  • name: 资源对象的名称。
  • flags: 子命令可选参数。

一条命令同时对多个资源对象进行操作

  • $ kubectl get pods pod1 pod2
  • $ kubectl get pod/pod1 rc/rc1
  • $ kubectl create -f pod1.yaml -f rc1.yaml -f server1.yaml

常用示例

  • 创建资源对象
    • $ kubectl create -f my-service.yaml -f my-rc.yaml
    • $ kubectl create -f <directory>
  • 查看资源对象
    • $ kubectl get pods
    • $ kubectl get rc,service
  • 描述资源对象
    • $ kubectl describe nodes <node-name>
    • $ kubectl describe pods/<pod-name>
    • $ kubectl describe pods <rc-name>
  • 删除资源对象
    • $ kubectl delete -f pod.yaml
    • $ kubectl delete pods,services -l name=<label-name>
    • $ kubectl delete pods --all
  • 执行容器命令
    • $ kubectl exec <pod-name> date
    • $ kubectl exec <pod-name> -c <container-name> date
    • $ kubectl exec <pod-name> -c <container-name> /bin/bash
  • 查看容器日志
    • $ kubectl logs <pod-name>
    • $ kubectl logs -f <pod-name> -c <container-name>
  • 创建/更新资源对象
    • $ kubectl apply -f app.yaml
  • 在线编辑运行中的资源对象
    • $ kubectl edit deploy nginx
  • 将Pod的开放端口映射到本地
    • $ kubectl port-forward --address 0.0.0.0 pod/nginx-6ddbbc47fb-sfdcv 8888:80
  • 在Pod和本地之间复制文件
    • $ kubectl cp nginx-6ddbbc47fb-sfdcv:/etc/fstab /tmp
  • 资源对象的标签设置
    • $ kubectl label namespace default testing=true
  • 检查可用的API资源类型列表
    • $ kubectl api-resources

help

$ kubectl help

在日常使用中多使用help来寻求帮助:)