前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器编排引擎Kubernetes 06——kubectl常用命令

容器编排引擎Kubernetes 06——kubectl常用命令

原创
作者头像
用户8100582
修改2024-02-02 19:37:12
1980
修改2024-02-02 19:37:12
举报
文章被收录于专栏:微服务化微服务化

系列目录

  1. 容器编排引擎Kubernetes 01——一文带你认识K8S
  2. 容器编排引擎Kubernetes 02——k8s安装配置
  3. 容器编排引擎Kubernetes 03——初始化集群
  4. 容器编排引擎Kubernetes 04——部署Dashboard
  5. 容器编排引擎Kubernetes 05——命名空间和POD
  6. 容器编排引擎Kubernetes 06——kubectl常用命令
  7. 容器编排引擎Kubernetes 07——Deployment介绍及使用
  8. 容器编排引擎Kubernetes 08——Service介绍及使用
  9. 容器编排引擎Kubernetes 09——资源文件的介绍及使用
  10. 容器编排引擎Kubernetes 10——在k8s集群中部署项目

kubectl 是操作k8s集群的命令行工具,安装在k8s的master节点,kubectl 通过与 apiserver 交互,将用户输入转化为api server能够识别的信息,可以实现对k8s集群中各种资源的增删改查。

1 语法规则

kubectl 语法格式如下,可在k8s集群的master节点执行:

kubectl [command] [TYPE] [NAME] [flags]

说明如下:

  • command 对一个或多个资源执行的操作,例如 create,apply,get,describe,delete。底层使用的是 restful接口的 get, put, post, delete。
  • TYPE 指定资源类型,例如 pod,node,service,deployments等。资源类型区分大小写,可以指定单数、复数或缩写形式。例如,以下命令输出的结果相同:
代码语言:shell
复制
kubectl get pods nginx
kubectl get pod nginx
kubectl get po nginx
  • NAME 指定资源的名称,名称区分大小写,如果省略名称,则显示所有资源的详细信息。例如 kubectl get pods
  • flags 指定可选的参数。例如,
代码语言:shell
复制
-s, -server 参数指定 Kubernetes API 服务器的地址和端口
-n 指定名称空间等

2 get命令

  • 查询所有pod
代码语言:shell
复制
kubectl get pods
  • 查询所有pod,并展示出附加信息
代码语言:shell
复制
kubectl get pods -o wide
  • 查看一个资源类型中的多个资源(查看命名空间为kube-system下的指定pod)
代码语言:shell
复制
kubectl get pod -n kube-system calico-node-5bnr5 etcd-node0
  • 查看多个资源类型
代码语言:shell
复制
kubectl get cs

3 describe 命令

显示一个或多个资源的详细状态,默认情况下包括未初始化的资源

  • 显示指定节点名的节点详细信息
代码语言:shell
复制
kubectl describe nodes node1
  • 显示指定pod名称的pod详细信息
代码语言:shell
复制
kubectl describe pods <pod-name>
  • 检查通过 replicationController 创建的POD副本状态。

使用replicationController,可以根据一个已有的POD,创建其指定数量的副本。这里是要查询通过replicationController 方式创建的pod。

代码语言:shell
复制
kubectl describe replicationController/nginx
  • 查看所有pod详细信息
代码语言:shell
复制
kubectl describe pods

4 delete命令

从文件、标准输入或指定标签选择器、名称、资源选择器或者资源中删除资源。

  • 使用 pod.yaml 文件中指定的类型和名称删除pod
代码语言:shell
复制
kubectl delete -f pod.yaml

选择要删除pod的yaml文件

执行删除指令后,yaml文件对应的pod被删除

  • 删除标签名=\<label-name>的所有pod和服务
代码语言:shell
复制
kubectl delete pods,services -l name=<label-name>

给已有POD添加标签:

kubectl label pod nginx app=mypod

根据标签查询POD:

kubectl get pods --show-labels

kubectl delete pods -l app=mypod

  • 删除所有(包括未初始化的)具有标签名称=\<lable-name>的pod和服务
代码语言:shell
复制
kubectl delete pods,services -l name=<lable-name> --include-uninitialized
  • 删除所有pod,包括未进行初始化的pod,或者删除指定命名空间下的所有pod
代码语言:shell
复制
kubectl delete pods --all

5 exec 命令

kubectl exec 对pod中的容器执行命令,与 docker exec命令执行效果相同。

  • 进入指定名称pod中的容器,默认进入第一个容器

kubectl exec -it <pod-name> bash

  • 进入指定名称pod中的指定容器内 当一个pod中存在多个容器时,我们可以根据容器的名称,选择具体要进入到哪一个里边。 pod中的容器名称,可以使用前边介绍到的kubectl describe pod <pod-name>来查看。

kubectl exec -it <pod-name> -c <container-name> bash

6 logs 命令

kubectl logs 可以用来打印pod中容器的日志。

  • 从pod返回日志快照 kubectl logs <pod-name>
  • 从pod中开启流式传输日志,类似于tail -f的linux指令 kubectl logs -f <pod-name>

7 格式化输出

将pod信息格式化输出到一个yaml文件

kubectl get pod <pod-name> -o yaml

将pod信息以yaml文件的格式,输出到控制台

输出的格式,可以是yaml, json 或者其它自定义的格式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系列目录
  • 1 语法规则
  • 2 get命令
  • 3 describe 命令
  • 4 delete命令
  • 5 exec 命令
  • 6 logs 命令
  • 7 格式化输出
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档