kubectl命令行管理工具

kubectl命令行管理工具

kubectl的介绍及命令格式

  • kubectl的核心功能是通过API Server操作k8s的各种资源对象,是用于控制Kubernetes集群的命令行工具。
  • 语法格式:kubectl [command] [TYPE] [NAME] [flags]
    • command: 对资源执行相应操作的子命令, 如create、 get、 describe、 delete、等
    • type: 要操作的资源类型, 类型名称大小写敏感,但支持使用单数, 复数或缩写形式,例如pods、services等。
    • name: 要操作的资源对象名称,大小写敏感,如果省略, 则显示所有资源信息
    • flags:命令行选项, 或附加参数。如-s或–server等;另外,get等命令在输出时还有一个常用的标志 -o 用于指定输出的格式
      • -o wide:以纯文本格式显示资源的附件信息
      • -o name:仅打印资源名称
      • -o yaml:以YAML格式化输出API对象信息
      • -n或–namespace:命令行的目标名称
      • –kubeconfig:使用kubeconfig配置文件的路径,明日~/.kube/config。
      • -s或–server:指定API Server的地址和端口
    • e.g. kubectl create deployment java-web --image=10.0.0.250:5000/java.demo -o wide

kubectl的常用命令

命令描述
create通过文件名或标准输入创建资源
expose将一个资源公开为一个新的Service
run在集群中运行一个特定的镜像
set在对象上设置特定的功能
get显示一个或多个资源
explain文档参考资料
edit使用默认的编辑器编辑一个资源。
delete通过文件名、标准输入、资源名称或标签选择器来删除资源。
rollout管理资源的发布
rolling-update对给定的复制控制器滚动更新
scale扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job
autoscale创建一个自动选择扩容或缩容并设置Pod数量
certificate修改证书资源
cluster-info显示集群信息
top显示资源(CPU/Memory/Storage)使用。需要Heapster运行
cordon标记节点不可调度
uncordon标记节点可调度
drain驱逐节点上的应用,准备下线维护
taint修改节点taint标记
describe显示特定资源或资源组的详细信息
logs在一个Pod中打印一个容器日志。如果Pod只有一个容器,容器名称是可选的
attach附加到一个运行的容器
exec执行命令到容器
port-forward转发一个或多个本地端口到一个pod
proxy运行一个proxy到Kubernetes API server
cp拷贝文件或目录到容器中
auth检查授权
apply通过文件名或标准输入对资源应用配置
patch使用补丁修改、更新资源的字段
replace通过文件名或标准输入替换一个资源
convert不同的API版本之间转换配置文件
label更新资源上的标签
annotate更新资源上的注释
completion用于实现kubectl工具自动补全
api-versions打印受支持的API版本
config修改kubeconfig文件(用于访问API,比如配置认证信息)
help所有命令帮助
plugin运行一个命令行插件
version打印客户端和服务版本信息

使用kubectl管理应用生命周期

1、创建
kubectl create deployment web --image=lizhenliang/java-demo 
kubectl get deploy,pods

2、发布
kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web [--record]
kubectl get service

3、升级
kubectl set image deployment/web nginx=nginx:1.15
kubectl rollout status deployment/nginx-deployment  # 查看升级状态

4、回滚
kubectl rollout history deployment/web  # 查看发布记录
kubectl rollout undo deployment/web   # 回滚最新版本
kubectl rollout undo deployment/web --to-revision=2  # 回滚指定版本

5、删除
kubectl delete deploy/web
kubectl delete svc/web

补充

创建容器:kubectl run

  • 语法格式:kubectl run 资源名称 -it --image=私有仓库镜像名称:标签

查询资源:kubectl get

  • 查询节点状态:kubectl get node
  • 查询资源状态:kubectl get deployment
  • 查询pod容器资源:kubectl get pod
  • 查询主机信息:kubectl get pod -o wide
  • 显示资源文件Yaml格式:kubectl get pod -o yaml

进入一个正在运行的容器:kubectl exec

  • 语法格式:kubectl exec -it 容器id -c 容器名 – 执行的命令

查看资源详细信息(主要用于排错):kubectl describe 资源类型 资源名称

查看容器控制台的标准输出:kubectl logs 资源名称

删除资源:kubectl delete 资源类型 资源名称

查看命名空间:kubectl get namespace

查看命名空间中的资源对象:kubectl get pod -n kube-system

执行指定的资源文件:kubectl create|apply -f YAML或JASON格式的资源文件

kubectl create 、 kubectl apply和kubectl edit的区别

  • kubectl create:是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的。
  • kubectl apply:根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性。
  • kubectl edit:相当于先使用get命令获得资源配置,由用户通过交互式编辑器修改后再自动使用apply命令将其应用。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值