kubectl常用命令

1、kubectl get 显示资源

## 查看pod列表,若pod后不指定名称空间(namespace),则默认为default名称空间
kubectl get pod ## 查看当前rc和service信息
kubectl get rc,svc ## 查看当前deployment
kubectl get deployment ## -n 为指定名称空间(namespace)
kubectl get pod -n kube-system ## -o wide 表示查看pod详细信息,包括ip地址,node节点等
kubectl get pod -o wide ## -w 表示实时输出pod列表,类似于于tail -f命令名形式
kubectl get pod -o wide -w ## 将此命令的输出结果格式化显示,-o 指定输出格式
kubectl get pod <pod-name> -o yaml

2、kubectl describe 显示描述

## 查看某个node节点的详细描述
kubectl describe node <node-name> ## 查看某个pod的详细描述,特别是查看 pod 无法创建的时候的日志
kubectl describe pod <pod-name>

3、kubectl logs 输出容器在pod中的日志

## 查看某pod内的容器日志,-f 为持续输出
kubectl logs -f <pod-name> ## 查看pod内指定的某个容器的日志,-c 指定容器名称
kubectl log <pod-name> -c <container_name>

4、kubectl create 通过配置文件名或stdin创建一个集群资源对象

## 配置文件支持JSON 与 YAML格式
## 通过文件创建pod,-f 指定文件
kubectl create -f <FILENAME> ## 创建deployment/namespace/service等
kubectl create deployment/namespace/service ## 通过stdin创建一个pod
cat pod.json | kubectl create -f - ## API版本为v1的JSON格式的docker-registry.yaml文件创建资源
kubectl create -f docker-registry.yaml --edit --output-version=v1 -o json

5、kubectl run 创建并运行指定的镜像

## 语法描述
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...] ## 启动一个nginx实例
## 并暴露端口80(此处仅仅是暴露端口,不同于docker中的-p)若不暴露,也能访问
## 指定副本数为5个,--replicas
kubectl run nginx --image=nginx --port=80 --replicas=5 ## 启动hazelcast实例,并设置环境变量
kubectl run hazelcast --image=hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"

6、kubectl expose 指定deployment、service、rs、replication controller或pod,并将它们暴露为一个新的Kubernetes Service

## 语法
kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]
## 为rc的nginx创建service,并通过service的80端口转发至容器的8000端口上
kubectl expose rc nginx --port=80 --target-port=8000 ## 为nginx-controller.yaml中所指定的type和name标识的RC创建service
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000 ## 为deployment的nginx-deployment创建service
kubectl expose deployment nginx-deployment --port=20000 --target-port=80

7、kubectl edit 编辑服务器中的资源

使用命令行工具获取的任何资源都可以使用edit命令编辑。edit命令会打开使用KUBE_EDITOR,GIT_EDITOR 或者EDITOR环境变量定义的编辑器,可以同时编辑多个资源,但所编辑过的资源只会一次性提交。edit除命令参数外还接受文件名形式。

文件默认输出格式为YAML。要以JSON格式编辑,请指定“-o json”选项。

如果在更新资源时报错,将会在磁盘上创建一个临时文件来记录。在更新资源时最常见的错误是几个用户同时使用编辑器更改服务器上资源,发生这种情况,你需要将你的更改应用到最新版本的资源上,或者更新保存的临时副本。

## 语法
kubectl edit (RESOURCE/NAME | -f FILENAME) ## 编辑名为docker-registry的service
## 或名为nginx的pod
## 或名为nginx-deployment的svc
kubectl edit svc/docker-registry
|| pod/nginx
|| svc/nginx-deployment ##编辑名为“myjob”的service,输出JSON格式 V1 API版本
kubectl edit job.v1.batch/myjob -o json

8、kubectl delete 通过配置文件名、stdin、资源名称或lable选择器删除资源

## 语法
kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)]) ## 删除所有pod
kubectl delete pods --all ## 删除名为“baz”和“foo”的Pod和Service。
kubectl delete pod,svc baz foo ##删除 Label name = myLabel的pod和Service,-l 指定label
kubectl delete pod,svc -l name=myLabel ## 使用 pod.json中指定的资源类型和名称删除pod
kubectl delete -f ./pod.json ## 根据传入stdin的JSON所指定的类型和名称删除pod
cat pod.json | kubectl delete -f -

9、kubectl autoscale 自动设置在k8s集群中运行的pod数量(水平自动伸缩)

指定Deployment、ReplicaSet或ReplicationController,并创建已经定义好资源的自动伸缩器。使用自动伸缩器可以根据需要自动增加或减少系统中部署的pod数量。

## 语法
autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] ## 设置名为foo的deployment,使用默认的自动伸缩策略,指定目标cpu使用率,使其pod数量在2-10之间
kubectl autoscale deployment foo --min=2 --max=10 ## 设置名为foo的RC,使其pod数量维持在1-5之间,CPU使用率维持在80%
kubectl autoscale rc foo --max=5 --cpu-percent=80

scale 手动指定k8s集群中副本的数量

## 语法
kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME) ## 设置名为foo的deployment的副本数量为5个
kubectl scale --replicas=5 deployment foo ## 将foo.yaml文件中的副本数修改为3
kubectl scale --replicas=3 -f foo.yaml ## 若deployment/mysql的副本数为2,则将它修改为3个
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

10、kubectl label 更新(增加、修改或删除)资源上的label标签

label 必须以字母或数字开头,可以使用字母、数字、连字符、点和下划线,最长63个字符。

如果--overwrite 为 true,则可以覆盖已有的 label,否则尝试覆盖 label 将会报错。

如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。

## 语法

## 给名为foo的Pod添加label unhealthy=true。
kubectl label pods foo unhealthy=true ## 给 namespace 中的所有 pod 添加 label
kubectl label pods --all status=unhealthy -n default ## 删除名为“bar”的label (使用“ - ”减号相连)
kubectl label pods foo bar-

11、kubectl exec 在一个container中执行一个命令

## 语法
kubectl exec -it <pod-name> -c <container-name> -n <namespace> -- shell command ## 创建目录
kubectl exec -it nginx -c nginx-master -n default -- mkdir -p /usr/local/nginx

12、kubectl cp 拷贝文件或目录

## 语法
kubectl cp /path/filename |namespace|/|pod-name|/:/container_path/

kubectl cp |namespace|/|pod-name|:/container_path/ /path/

参考资料链接:http://docs.kubernetes.org.cn/475.html

Kubernetes-4:kubectl常用命令总结的更多相关文章

  1. Kubernetes之kubectl常用命令

    最近项目有用到Kubernetes作集群配置,所以学习下相关命令,记录下以备下次使用... kubectl help 显示具体的用法 kubectl controls the Kubernetes c ...

  2. Kubernetes的kubectl常用命令速记

    文章转载自:https://mp.weixin.qq.com/s/0kqQzeA-MzCOhPMkmiR4_A kubectl是用来管理Kubernetes集群的命令行工具. kubectl默认在&q ...

  3. Kubernetes,kubectl常用命令详解

    kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...

  4. kubernetes 知识点及常用命令

    一.附上一个Deployment文件 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selec ...

  5. K8s的kubectl常用命令

    一. 设置kubectl输入命令自动补全 依次执行一下命令: yum install -y bash-completion source /usr/share/bash-completion/bash ...

  6. k8s记录-kubectl常用命令

    kubectl kubectl annotate – 更新资源的注解.kubectl api-versions – 以“组/版本”的格式输出服务端支持的API版本.kubectl apply – 通过 ...

  7. kubectl 常用命令一

    1.kubectl logs <options>  <PodName> -f -p, --previous --since= No. --since-time= --tail ...

  8. kubectl 常用命令总结

    # 查看所有 pod 列表, -n 后跟 namespace, 查看指定的命名空间 kubectl get pod kubectl get pod -n kube # 查看 RC 和 service ...

  9. kubectl常用命令

    command kubectl kubectl 输出格式 显示Pod的更多信息 kubectl get pod <pod-name> -o wide 以yaml格式显示Pod的详细信息 k ...

  10. kubectl常用命令(个人记录)

    一.获取pod信息 1.获取当前集群运行的所有的pods的信息 kubectl get pod   2.获取当前集群运行的所有的pod运行在哪个节点 kubectl get pods -owide   ...

随机推荐

  1. 小组合作实现的基于 jsp,servlet,mysql 编写的学校管理系统

    基本完成的页面--源代码在<文件>中可下载 文件地址:https://i.cnblogs.com/Files.aspx 学生管理模块各功能已实现 百度网盘下载地址: 链接:https:// ...

  2. 韦东山freeRTOS系列教程之【第五章】队列(queue)

    目录 系列教程总目录 概述 5.1 队列的特性 5.1.1 常规操作 5.1.2 传输数据的两种方法 5.1.3 队列的阻塞访问 5.2 队列函数 5.2.1 创建 5.2.2 复位 5.2.3 删除 ...

  3. Spring Cloud 比较

    Spring Cloud 比较 一.简介 1.SpringCloud:一套微服务架构下的一站式解决方案,理念就是解决我们在微服务架构中遇到的任何问题: 2.SpringCloudAlibaba:阿里实 ...

  4. 用这开源小书学 Docker,香!

    > 最新.全面.通俗.可多端阅读的 Docker 教程小书.>> 编程导航开源仓库:https://github.com/liyupi/code-navDocker 可以说是一个改变 ...

  5. [oeasy]python0091_仙童公司_八叛逆_intel_8080_altair8800_牛郎星

    编码进化 个人电脑 计算机 通过电话网络 进行连接 极客 利用技术 做一些有趣的尝试 极客文化 是 认真研究技术的 文化 计算机 不再是 高校和研究机构高墙里面的 神秘事物 而是 生活中常见的 家用电 ...

  6. [oeasy]python0072_修改字体前景颜色_foreground_color_font

    修改颜色 回忆上次内容 m 可以改变字体样式 0-9 之间设置的都是字体效果 0 重置为默认 1 变亮 2 变暗 3 斜体 4 下划线 5 慢闪 6 快闪 7 前景背景互换 8 隐藏 9 中划线 叠加 ...

  7. oeasy教您玩转python - 007 - # 字符本质

    ​ 字符本质 回忆上次内容 hello world 不是从来就有的 来自于unix和c 虽然我们今天有各种先进的学习手段 最早的高级语言学习是从最早的那张打字机用纸的手写代码起源的 所以输出用的是 p ...

  8. 从Mybatis-Plus开始认识SerializedLambda

    从Mybatis-Plus开始认识SerializedLambda 背景 对于使用过Mybatis-Plus的Java开发者来说,肯定对以下代码不陌生: @TableName("t_user ...

  9. PHP 程序员为什么依然是外包公司的香饽饽?

    大家好,我是码农先森. PHP 唯一的爽点就是开发起来「哇真快」这刚好和外包公司的需求相契合,在 Web 领域的芒荒年代 PHP 以王者姿态傲视群雄.如果 PHP 敢说第二,就没有哪门子语言敢称第一, ...

  10. C#/.NET这些实用的编程技巧你都会了吗?

    DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法.算法.技巧.中间件.类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.N ...