Kubectl:Kubernetes 的强大命令行工具

前言

在 Kubernetes 这一强大的容器编排平台中,kubectl 无疑是一把至关重要的利器。它就像是一位全能的指挥官,让用户能够与 Kubernetes 集群进行高效而直接的交互。无论是管理容器化应用的部署、监控资源的使用情况,还是处理故障排查等任务,kubectl 都发挥着不可或缺的作用。

Kubernetes 以其高度的可扩展性和灵活性,成为了现代云原生应用开发和部署的首选平台。而 kubectl 作为与 Kubernetes 集群进行交互的主要方式,为开发者和运维人员提供了丰富的功能和便捷的操作。通过一系列简洁而强大的命令,用户可以轻松地对 Kubernetes 集群中的各种资源进行管理和控制。

在接下来的文章中,我们将深入探讨 kubectl 的常用命令,带你领略它的强大之处,帮助你更加熟练地运用这个工具来管理你的 Kubernetes 集群。

基本语法

sh 复制代码
kubectl [command] [TYPE] [NAME] [flags]
# 查看集群信息
kubectl cluster-info  

资源的缩写

  • Deployment:deploy
  • StatefulSet:sts
  • DaemonSet:ds
  • ReplicaSet:rs
  • Pod:po
  • Service:svc
  • ConfigMap:cm
  • Secret:sec
  • PersistentVolumeClaim:pvc
  • PersistentVolume:pv
  • Node:no

get

显示一种或多种资源

sh 复制代码
$ kubectl get [--kubeconfig=...] [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columns-file=...|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags]
sh 复制代码
# 列出所有不同的资源对象,默认default空间
kubectl get all
# 带上k8s认证信息,一般远程调用使用
kubectl --kubeconfig=/xxx/k8s.conf get all
# 查看test空间下的所有资源 
kubectl get all -n test
# 列出所有节点
kubectl get nodes
# 列出所有节点及详情
kubectl get nodes -o wide 
# 实时查看
kubectl get pods -o wide -w
# 列出所有节点详情及标签信息
kubectl get nodes -o wide --show-labels
# 列出所有命名空间下运行的Pod信息
kubectl get pods --all-namespaces
kubectl get pods -A
# 列出所有运行的Pod信息及详情
kubectl get pods -n test -o wide
# 列出所有的命令空间
kubectl get namespace
# 列出所有deployment和service信息,注意不要有空格
kubectl get deployments,services

describe

sh 复制代码
# 语法
kubectl describe TYPE NAME_PREFIX
# 查看名为test-nginx的详细信息
kubectl describe deployment test-nginx -n test
# 查看名为test-nginx的svc的详细信息
kubectl describe svc test-nginx -n test

create

sh 复制代码
# 从文件或标准输入创建资源,接受JSON和YAML格式。
kubectl create -f FILENAME
# 根据aaa.text创建一个名为my-config的configmap
kubectl create configmap my-config --from-file=/root/aaa.text
# 创建一个名为test的命名空间,可缩写为ns
kubectl create namespace test
# 在test命名空间下,创建一个名为test-nginx的deployment资源
kubectl create deployment test-nginx --image=daocloud.io/library/nginx:1.27.1  -n test 

delete

通过配置文件名、stdin、资源名称或label选择器来删除资源。

sh 复制代码
# 语法
$ delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
# 使用nginx-test.yml中指定的资源类型和名称删除pod
kubectl delete -f ./nginx-test.yml
# 删除一个pod
kubectl delete pod test-nginx-cc44fcc54-hhfgv -n test
# 删除所有的pod
kubectl delete pods --all
# 删除命名空间
kubectl delete namespace test-namespace

run

sh 复制代码
# 在test命名空间下创建nginx,执行端口8080,副本数为2
kubectl run nginx --image=daocloud.io/library/nginx:1.27.1 --port=8080 --replicas=2 --env="POD_NAMESPACE=test"

scale

sh 复制代码
# 语法
scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)
# 扩容test-nginx为3份
kubectl scale deployment test-nginx --replicas=3 -n test
相关推荐
无名之逆3 小时前
云原生(Cloud Native)
开发语言·c++·算法·云原生·面试·职场和发展·大学期末
Richardlygo3 小时前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes
炸裂狸花猫5 小时前
Kubernetes从零到精通(12-Ingress、Gateway API)
容器·kubernetes·gateway
自律的kkk6 小时前
docker配置镜像加速器
运维·docker·容器
Lill_bin7 小时前
JVM内部结构解析
jvm·后端·spring cloud·微服务·云原生·ribbon
青云交8 小时前
大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践
数据库·kubernetes·容器编排·资源管理·大数据处理·扩展性、故障恢复·存储持久化·监控、日志管理、性能提升
苏少朋8 小时前
Docker安装 ▎Docker详细讲解 ▎数据卷挂载 ▎Nginx安装理解
linux·nginx·docker·容器
晚枫20008 小时前
kafka发送事件的几种方式
spring boot·分布式·docker·容器·kafka·intellij-idea·linq
二进制杯莫停8 小时前
初识zookeeper
分布式·zookeeper·云原生
StevenZeng学堂9 小时前
【Kubernetes笔记】为什么DNS解析会超时?
网络协议·docker·云原生·kubernetes