【K8S】kubectl常用命令总结

目录

即可即用

kubectl常用命令总结

kubectl 查看 K8s 内节点、Pod 资源使用情况

kubectl get - 列出一个或多个资源

kubectl describe - 显示资源的详细状态

kubectl delete -删除资源。

kubectl exec 进入容器命令

logs命令

Kubectl 常用命令大全

Kubectl 常用参数分类

基础命令:create,delete,get,run,expose,set,explain,edit

kubectl set resources 命令

kubectl set selector 命令

kubectl set image 命令

设置命令:label,annotate,completion

kubectl 部署命令:rollout,rolling-update,scale,autoscale

集群管理命令:certificate,cluster-info,top,cordon,uncordon,drain,taint

集群故障排查和调试命令:describe,logs,exec,attach,port-foward,proxy,cp,auth

其他命令:api-servions,config,help,plugin,version

高级命令:apply,patch,replace,convert

格式化输出

Kubectl 日志输出详细程度和调试

小结

参考链接


即可即用

进入容器

通过bash获得pod中某个容器的TTY,相当于登录容器

kubectl exec -it <pod-name> -n <name-space> bash

kubectl exec 进入pod后,exit退出pod (ctrl+c也可以?)

在 pod 外执行容器命令

命令行,创建一个test文件:

kubectl exec -it <podname> -c <container name> -n <namespace> \
-- touch /usr/local/test

kubectl常用命令总结

kubectl 查看 K8s 内节点、Pod 资源使用情况


kubectl describe node 查看 Pod 在节点上的资源分配情况(Request、Limits)
kubectl top node      查看节点的资源使用情况
kubectl top pod       查看 Pod 资源使用情况
kubectl get pod -o wide |grep $node 查看指定 node 上运行的所有 pod
kubectl top pod |grep -E “$podname1|$podname2|…” 查看一个 pod 或几个 pod 的资源使用情况 


kubectl get - 列出一个或多个资源


# 查看集群状态信息 
kubectl cluster-info 

# 查看集群状态 
kubectl get cs 

# 以纯文本输出格式列出所有 pod,并包含附加信息(如节点名)。 
kubectl get pods -o wide 
kubectl get pods -n mynamespace -o wide  #-n namesapce的 
kubectl get pods -A -o wide  #-A 所有namesapce的 

# 查看集群节点信息 
kubectl get nodes 

# 查看集群命名空间 
kubectl get ns 

# 查看指定命名空间的服务 
kubectl get svc -n kube-system 

# 以纯文本输出格式列出所有 pod。 
kubectl get pods 


# 列出在节点 server01 上运行的所有 pod
kubectl get pods --field-selector=spec.nodeName=server01

# 以纯文本输出格式列出具有指定名称的副本控制器。提示:您可以使用别名 'rc' 缩短和替换 'replicationcontroller' 资源类型。 
kubectl get replicationcontroller <rc-name> 

# 以纯文本输出格式列出所有副本控制器和服务。 
kubectl get rc,services 

# 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。 
kubectl get ds --include-uninitialized 

kubectl describe - 显示资源的详细状态


describe命令
#kubectl describe - 显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

# 显示名称为 <node-name> 的节点的详细信息。 
kubectl describe nodes <node-name> 

# 显示名为 <pod-name> 的 pod 的详细信息。 
kubectl describe pods/<pod-name> 

# 显示由名为 <rc-name> 的副本控制器管理的所有 pod 的详细信息。 
# 记住:副本控制器创建的任何 pod 都以复制控制器的名称为前缀。 
kubectl describe pods <rc-name> 

# 描述所有的 pod,不包括未初始化的 pod 
kubectl describe pods --include-uninitialized=false

说明: kubectl get 命令通常用于检索同一资源类型的一个或多个资源。 它具有丰富的参数,允许您使用 -o 或 --output 参数自定义输出格式。您可以指定 -w 或 --watch 参数以开始观察特定对象的更新。 kubectl describe 命令更侧重于描述指定资源的许多相关方面。它可以调用对 API 服务器 的多个 API 调用来为用户构建视图。 例如,该 kubectl describe node 命令不仅检索有关节点的信息,还检索在其上运行的 pod 的摘要,为节点生成的事件等。

kubectl delete -删除资源。


delete命令
#kubectl delete` - 从文件、stdin 或指定标签选择器、名称、资源选择器或资源中删除资源。
# 使用 pod.yaml 文件中指定的类型和名称删除 pod。 
kubectl delete -f pod.yaml 

# 删除标签名= <label-name> 的所有 pod 和服务。 
kubectl delete pods,services -l name=<label-name> 

# 删除所有具有标签名称= <label-name> 的 pod 和服务,包括未初始化的那些。 
kubectl delete pods,services -l name=<label-name> --include-uninitialized 

# 删除所有 pod,包括未初始化的 pod。 
kubectl delete pods --all


kubectl exec 进入容器命令


#kubectl exec - 对 pod 中的容器执行命令。与docker的exec命令非常类似
# 从 pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。 
kubectl exec <pod-name> date 

# 运行输出 'date' 获取在容器的 <container-name> 中 pod <pod-name> 的输出。 
kubectl exec <pod-name> -c <container-name> date 

# 获取一个交互 TTY 并运行 /bin/bash <pod-name >。默认情况下,输出来自第一个容器。 
kubectl exec -ti <pod-name> /bin/bash


logs命令


kubectl logs - 打印 Pod 中容器的日志。
# 从 pod 返回日志快照。 
kubectl logs <pod-name> 

# 从 pod <pod-name> 开始流式传输日志。这类似于 'tail -f' Linux 命令。 
kubectl logs -f <pod-name>

Kubectl 常用命令大全

(https://www.jianshu.com/p/07455dbfd6bb)

Kubectl 常用参数分类

基础命令:create,delete,get,run,expose,set,explain,edit

create 命令:根据文件或者输入来创建资源

# 创建Deployment和Service资源

$ kubectl create -f demo-deployment.yaml
$ kubectl create -f demo-service.yaml

delete 命令:删除资源

# 根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效

$ kubectl delete -f demo-deployment.yaml 
$ kubectl delete -f demo-service.yaml

# 也可以通过具体的资源名称来进行删除,使用这个删除资源,同时删除deployment和service资源

$ kubectl delete 具体的资源名称

get 命令 :获得资源信息

# 查看所有的资源信息
$ kubectl get all
$ kubectl get --all-namespaces

# 查看pod列表
$ kubectl get pod

# 显示pod节点的标签信息
$ kubectl get pod --show-labels

# 根据指定标签匹配到具体的pod
$ kubectl get pods -l app=example

# 查看node节点列表
$ kubectl get node 

# 显示node节点的标签信息
$ kubectl get node --show-labels

# 查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
$ kubectl get pod -o wide

# 查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息
$ kubectl get svc
$ kubectl get svc -n kube-system

# 查看命名空间
$ kubectl get ns
$ kubectl get namespaces

# 查看所有pod所属的命名空间
$ kubectl get pod --all-namespaces

# 查看所有pod所属的命名空间并且查看都在哪些节点上运行
$ kubectl get pod --all-namespaces  -o wide

# 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
$ kubectl get rs

# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
$ kubectl get deploy -o wide
$ kubectl get deployments -o wide

run 命令:在集群中创建并运行一个或多个容器镜像。

语法:run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]

# 示例,运行一个名
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值