kubectl 命令

Posted by ZhangShun Blog on January 15, 2019

格式化输出

以特定的格式想终端输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 选项

  • -o=json:输出 JSON 格式的 API 对象
  • -o=yaml:输出 YAML 格式的 API 对象
  • -o=wide:以纯文本格式输出任何附加信息,对于 Pod ,包含节点名称
  • -o=name:仅打印资源名称

删除资源

kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)]) [options]

输出指定的一个/多个资源的详细信息

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]

  • -l:描述所有包含label的资源

修改资源配置

kubectl edit (RESOURCE/NAME | -f FILENAME) [options]

  • -o, --output=”yaml”: 输出格式,可选yaml或者json中的一种

扩容或缩容控制器下pod数量

kubectl scale --replicas=COUNT (-f FILENAME | TYPE NAME)

更新现有的资源对象的容器镜像

kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 … CONTAINER_NAME_N=CONTAINER_IMAGE_N [options]

可使用资源对象包括:pod、replicationcontroller、deployment、daemonset、job、replicaset

示例:kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1

对资源进行管理、回滚等

kubectl rollout SUBCOMMAND [options]

  • status:查看资源回滚状态,例如:kubectl rollout status deployment nginx
  • undo:回滚版本,例如:kubectl rollout undo deployment nginx

显示apiserver版本

kubectl api-versions

查看资源的yaml结构

kubectl explain RESOURCE [options]

例如:kubectl explain pods.metadata.labels

查看资源的运行日志

kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER] [options]

  • pod运行一个容器时:kubectl logs $podname
  • pod运行多个容器时:kubectl logs $podname $containername

进入pod中的容器

kubectl exec -it $podname -c $containername –- /bin/sh