kubectl常用的命令

本文介绍了kubectl的安装,以及如何使用它进行命令自动补全、查看Pod、RC和Service列表、显示Node信息、管理资源、查看日志、删除操作等。kubectl是管理和操作Kubernetes集群的关键工具,支持自动化部署、扩展和管理容器化应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

安装 kubectl

一、命令自动补全

二、常用命令

1、查看所有pod列表

2、查看RC和service列表

3、显示Node的详细信息

4、显示Pod的详细信息, 特别是查看Pod无法创建的时候的日志

5、 根据yaml创建资源, apply可以重复执行,create不行

6、基于nginx.yaml定义的名称删除指定资源

7、删除所有包含某个label的pod和service

8、删除默认命名空间下的所有 Pod

9、执行pod命令

10、查看容器日志

11、查看节点 labels

12、重启pod

三、创建命令

四、查看和查找资源 

五、删除资源 

六、Pod常用操作 


       Kubernetes 是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。而 kubectl 则是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群。

在本文中,我们将深入介绍 kubectl 的各种用法和功能。

安装 kubectl

       要安装 kubectl,需要使用的操作系统的软件包管理器或者前往 Kubernetes 官方网站下载二进制文件。在安装之前,确保Kubernetes集群已经启动并正在运行。

一、命令自动补全

source <(kubectl completion bash) 
#在bash中设置当前shell的自动补全,要先安装bash-completion包。

echo "source <(kubectl completion bash)" >> ~/.bashrc 

二、常用命令

1、查看所有pod列表

查看所有的pod列表,-n 后跟namespace,查看指定的命名空间

kubectl get pod
kubectl get pod -n kube-system  #查看指定的命名空间的pod
​kubectl get pod -owide          #查看更详细的信息,比如pod 所在的节点
kubectl get pod --show-labels   #获取pod 并查看pod 的标签

2、查看RC和service列表

查看RC和service列表, -o wide查看详细信息

kubectl get rc,svc
kubectl get pod,svc -o wide  
kubectl get pod <pod-name> -o yaml

3、显示Node的详细信息

kubectl describe node 192.168.80.8 #可以跟Node或者IP或者主机名

4、显示Pod的详细信息, 特别是查看Pod无法创建的时候的日志

kubectl describe pod <pod-name>
eg:
kubectl describe pod nginx-deployment-d558b54fd-72bpn

5、 根据yaml创建资源, apply可以重复执行,create不行

kubectl get service nginx -o yaml > nginx.yaml

kubectl create -f nginx.yaml
kubectl apply -f nginx.yaml

6、基于nginx.yaml定义的名称删除指定资源

kubectl delete -f nginx.yaml

7、删除所有包含某个label的pod和service

kubectl delete pod,svc -l name=<label-name>

8、删除默认命名空间下的所有 Pod

kubectl delete pod --all

9、执行pod命令

kubectl exec <pod-name> -- date
kubectl exec <pod-name> -- bash
kubectl exec <pod-name> -- ping

10、查看容器日志

kubectl logs <pod-name>
kubectl logs -f <pod-name>   #实时查看日志
kubectl log  <pod-name>  -c <container_name>  #若pod只有一个容器,可以不加-c 
​
kubectl logs -l app=frontend   #返回所有标记为app=frontend的pod的合并日志。

11、查看节点 labels

kubectl get node --show-lables

12、重启pod

kubectl get pod <POD名称> -n <NAMESPACE名称> -o yaml | kubectl replace --force -f -

三、创建命令

kubectl apply -f ./ss.yaml                    # 创建资源
kubectl apply -f ./ss1.yaml -f ./ss2.yaml     # 使用多个文件创建
kubectl apply -f ./dir                        # 基于目录下的所有清单文件创建资源
kubectl apply -f https://git.io/vPieo         # 从 URL 中创建资源
kubectl create deployment nginx --image=nginx # 启动单实例 nginx
kubectl explain pods,svc                      # 获取 pod 清单的文档说明

四、查看和查找资源 

kubectl get services                       # 列出当前命名空间下的所有 services
kubectl get pods --all-namespaces          # 列出所有命名空间下的全部的 Pods
kubectl get pods -o wide                   # 列出当前命名空间下的全部 Pods,并显示更详细的信息
kubectl get deployment my-dep              # 列出某个特定的 Deployment
kubectl get pods                           # 列出当前命名空间下的全部 Pods
kubectl get pod my-pod -o yaml             # 获取一个 pod 的 YAML

五、删除资源 

kubectl delete -f ./pod.json                   # 删除在 pod.json 中指定的类型和名称的 Pod
kubectl delete pod,service baz foo             # 删除名称为 "baz" 和 "foo" 的 Pod 和服务
kubectl delete pods,services -l name=myLabel   # 删除包含 name=myLabel 标签的 pods 和服务
kubectl delete pods,services -l name=myLabel --include-uninitialized      
# 删除包含 label name=myLabel 标签的 Pods 和服务
kubectl -n my-ns delete po,svc --all           # 删除在 my-ns 名字空间中全部的 Pods 和服务

六、Pod常用操作

kubectl logs my-pod                           
# 获取 pod 日志(标准输出)
kubectl logs -l name=myLabel           
# 获取含 name=myLabel 标签的 Pods 的日志(标准输出)
kubectl logs my-pod --previous           
# 获取上个容器实例的 pod 日志(标准输出)
kubectl logs my-pod -c my-container             
# 获取 Pod 容器的日志(标准输出, 多容器场景)
kubectl logs -l name=myLabel -c my-container        
# 获取含 name=myLabel 标签的 Pod 容器日志(标准输出, 多容器场景)
kubectl logs my-pod -c my-container --previous      
# 获取 Pod 中某容器的上个实例的日志(标准输出, 多容器场景)
kubectl logs -f my-pod                              
# 流式输出 Pod 的日志(标准输出)
kubectl logs -f my-pod -c my-container       
# 流式输出 Pod 容器的日志(标准输出, 多容器场景)
kubectl logs -f -l name=myLabel --all-containers    
# 流式输出含 name=myLabel 标签的 Pod 的所有日志(标准输出)
kubectl run -i --tty busybox --image=busybox -- sh  
# 以交互式 Shell 运行 Pod
kubectl run nginx --image=nginx -n mynamespace      
# 在指定名字空间中运行 nginx Pod
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml    
# 运行 ngins Pod 并将其规约写入到名为 pod.yaml 的文件   
​kubectl attach my-pod -i                            
# 挂接到一个运行的容器中
kubectl port-forward my-pod 5000:6000                    
# 在本地计算机上侦听端口 5000 并转发到 my-pod 上的端口 6000
kubectl exec my-pod -- ls /                         
# 在已有的 Pod 中运行命令(单容器场景)
kubectl exec my-pod -c my-container -- ls /         
# 在已有的 Pod 中运行命令(多容器场景)
kubectl top pod POD_NAME --containers               
# 显示给定 Pod 和其中容器的监控数据

 

03-16
### kubectl 使用指南及常见问题 #### 什么是 kubectl? `kubectl` 是 Kubernetes命令行工具,用于与 Kubernetes API Server 进行交互并执行集群管理操作[^1]。 --- #### 常用 `kubectl` 命令汇总 以下是部分常用 `kubectl` 命令及其功能: 1. **查看 Pod 列表** ```bash kubectl get pods ``` 此命令可以列出当前命名空间中的所有 Pods。如果需要更详细的输出,可使用 `-o wide` 参数[^3]。 2. **创建资源** ```bash kubectl create -f filename.yaml ``` 创建指定 YAML 文件定义的资源对象。 3. **删除资源** ```bash kubectl delete -f filename.yaml ``` 删除由指定文件描述的对象。 4. **更新 Deployment 版本** 如果部署失败或者需要回滚到之前的版本,可以通过以下命令实现: ```bash kubectl rollout undo deployment myapp-deploy --to-revision=1 ``` 上述命令会将名为 `myapp-deploy` 的 Deployment 回退至第 1 个修订版[^5]。 5. **给 Node 添加 Label** 可以为特定节点设置标签以便于调度策略配置: ```bash kubectl label nodes host1 server_type=worker ``` 同样支持批量标记多个节点,例如: ```bash kubectl label nodes host1 host2 host3 server_type=worker ``` 6. **查询带有特定标签的 Nodes** 若想筛选具有某类属性(如服务类型)的节点列表,则运行如下指令即可完成过滤查找工作: ```bash kubectl get node -l server_type ``` 7. **监控实时日志流** 对正在运行的应用程序实例进行调试时非常有用的一项技能就是跟踪其标准错误输出或标准输入记录情况: ```bash kubectl logs POD_NAME -f ``` 8. **进入容器内部环境** 类似 Docker exec 功能,在线程级别上访问目标进程所在的操作系统界面从而进一步排查疑难杂症成为可能: ```bash kubectl exec -it POD_NAME /bin/bash ``` 9. **扩展性探索** 实际生产环境中往往还需要考虑更多维度上的需求满足度量衡指标采集分析等方面的内容;因此建议查阅官方文档获取最新最全的功能介绍参考资料链接地址[^2]。 --- #### Apache Flink 和 Kubernetes 结合场景下的注意事项 当涉及到大数据处理框架如 Apache Flink 在 Kubernetes 平台上部署运维的时候,《Apache Flink Kubernetes Operator 使用指南》提供了一些实用技巧来简化日常管理工作流程,并且针对初学者容易遇到的一些典型误区给出了预防措施说明[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值