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
相关推荐
Waay1 小时前
图文详解|K8s Pod内部结构
docker·云原生·kubernetes
码点滴1 小时前
CRI-O选型与容器运行时标准
开发语言·人工智能·架构·kubernetes·cri-o
openFuyao2 小时前
以开源之力,突破多样化算力困局——openFuyao开源一周年背后的故事
人工智能·云原生·开源·openfuyao·多样化算力·集群软件
JiaWen技术圈2 小时前
IaC 双引擎:Terraform + Ansible 完整最佳实践
云原生·ansible·terraform
万里侯3 小时前
Kubernetes成本优化:降低云原生基础设施成本的完整指南
微服务·容器·k8s
r-t-H5 小时前
KVM虚拟化与Docker基础实践-第二章
阿里云·docker·容器
牛奶咖啡137 小时前
k8s容器编排技术实践——OpenEuler安装部署k8s
kubernetes·信创·containerd配置加速器·openeuler安装k8s·k8s的常见安装方式·彻底关闭swap·工作节点使用kubectl
老码观察7 小时前
K8s 容器化部署的宿主机资源规划的踩坑实录
docker·容器·kubernetes
步步为营DotNet7 小时前
深入.NET 11:.NET Aspire 在云原生资源编排与管理的卓越实践
云原生·.net
我是谁??7 小时前
【6】基于 Docker + YOLOv8 的模型部署实战(GTX1660S + Ubuntu22.04)
yolo·docker·容器