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
相关推荐
moppol2 小时前
Serverless 架构入门与实战:AWS Lambda、Azure Functions、Cloudflare Workers 对比
云原生·serverless·aws
IvanCodes2 小时前
一、Docker:一场颠覆应用部署与运维的容器革命
docker·容器
栗子~~3 小时前
Milvus docker-compose 部署
docker·容器·milvus
没有名字的小羊4 小时前
2.安装Docker
运维·docker·容器
xiezhr4 小时前
50 个常用 Docker 命令
运维·docker·容器
退役小学生呀10 天前
三、kubectl使用详解
云原生·容器·kubernetes·k8s
被困者10 天前
Linux部署Sonic前后端(详细版)(腾讯云)
spring cloud·云原生·eureka
程序员小潘10 天前
Kubernetes多容器Pod实战
云原生·容器·kubernetes
进击的码码码码N10 天前
Docker 镜像加速
运维·docker·容器