Kubernetes 从入门到精通-kubectl 命令完整手册

kubectl 是 Kubernetes 的命令行工具,kubectl为Kubernetes官方提供了命令行工具(CLI),用户通过此命令行交互的方式与Kubernetes API Server(8080端口)进行通信。

1.基础命令

命令

说明

Kubectl create

通过JSON/YAML文件或标准输入创建资源对象

kubectl apply

通过文件创建/更新资源

Kubectl get

获取一个或者多个资源对象

Kubectl expose

将JSON/YAML文件中定义的资源对象的端口暴露给新的Service资源对象

Kubectl run

创建并运行一个或者多个容器

Kubectl explain

查看资源对象信息

Kubectl edit

使用编辑器编辑资源对象

Kubectl delete

删除资源对象

kubectl describe

查看资源详情

示例:

#01 创建资源 创建nginx服务
kubectl create deployment nginx --image=nginx:1.22.0

kubectl apply -f deploy.yaml

#02 暴露为 Service
kubectl expose deployment nginx --port=80 --type=NodePort


#03 查看 pod资源、eployment资源、Service 资源
kubectl get pods,deployment,svc

kubectl get pods -o wide # 查看 Pod 及所在节点

#04 查看所有资源对象
kubectl api-resources
#查看单个资源对象的帮助文档
kubectl explain pod

#05 编辑资源对象
kubectl edit deploy nginx

#06 查看资源详细信息
kubectl describe pod nginx-68984b745f-g6wpj
kubectl describe deploy nginx

#07 删除资源
#根据文件删除
kuebctl delete -f nginx.yaml
#根据资源对象删除
kubectl delete pod nginx-68984b745f-g6wpj
kubectl delete deploy nginx
#删除所有资源对象
kubectl delete all --all

2.部署命令

命令

说明

Kubectl scale

扩容或者缩容Deployment ReplicaSet Controller 控制器

Kubectl autoscale

配置Kubernetes中水平自动伸缩Pod

示例:

# 扩缩放 Deployment 流量高峰应对、蓝绿部署
kubectl scale deployment/nginx --replicas=3

#自动缩放 (HPA)
# 创建 HorizontalPodAutoscaler (需要 metrics-server)
kubectl autoscale deployment/nginx --min=2 --max=5 --cpu-percent=80

3.故障排查和调试命令

命令

说明

Kubectl describe

显示资源对象详细信息

Kubectl logs

输出Pod资源对象中的容器日志

Kubectl exec -it

进入容器,在容器中运行命令

Kubectl cp

复制文件到Pod

示例:

#01 查看资源详细信息
 kubectl describe pod nginx-68984b745f-g6wpj

#02 查看容器日志
 kubectl logs -f nginx-68984b745f-g6wpj

#03 进入容器
 kubectl exec -it nginx-68984b745f-g6wpj /bin/bash
 #直接执行命令,不进入容器
 kubectl exec nginx-68984b745f-g6wpj -- ls /

#04 拷贝文件到容器
 kubectl cp nginx.yaml nginx-68984b745f-g6wpj:/

4.集群管理命令

命令

说明

kubectl top

显示cpu、内存使用情况

kubectl cordon

将指定节点标记为不可调度

kubectl cluster-info

查看集群信息

kubectl uncordon

将指定节点标记为可调度

kubectl drain

驱逐指定节点上面的pod

kubectl taint

给指定节点设置污点

示例:

#01 查看cpu、和内存使用率,必须安装Metrics Server
# 查看所有节点的资源使用情况
kubectl top nodes
# 查看特定节点
kubectl top node node-2
#查看当前命名空间所有 Pod 的资源使用
kubectl top pods

#02 将节点标记为不可调度
kubectl cordon node-3

#03 查看集群信息
kubectl cluster-info

#04 将节点标记为可调度
kubectl uncordon node-3

#05 驱逐指定节点上面的pod,会先标记节点不可调度(相当于自动执行cordon),然后驱逐所有pod
kubectl drain node-2 --ignore-daemonsets

#06 设置污点 PreferNoSchedule尽量不调度到该节点、
#NoSchedule不接受新的pod、
#NoExecute不接受新pod并且现有pod会被驱逐
kubectl taint node node-2 school=liux:PreferNoSchedule

#删除节点2上面的school污点
kubectl taint node node-2 school-

5.其他常用命令补充

命令

说明

Kubectl label

资源的标签管理

示例:

#给节点打标签 标记为生产环境 --overwrite覆盖现有标签
kubectl label nodes node-1 environment=production
#给pod打标签
kubectl label pod nginx class=nginx

#删除标签
kubectl label nodes node-1 environment-
kubectl label pod nginx class-

#查看节点的标签
kubectl get nodes --show-labels
#查看pod的标签
kubectl get pods --show-labels

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liux3528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值