K8s Kubectl集群管理工具使用技巧

共 8494字,需浏览 17分钟

 ·

2023-06-09 13:14

kubectlKubernetes命令行管理工具,可以使用它部署、查看和管理集群所有资源。

作为一名K8s运维工程师,必须要熟悉它,下面总结一些kubectl常用的命令示例,供大家练习~

创建资源

创建命名空间:使用  kubectl create namespace  命令可以创建新的命名空间。

      kubectl create namespace my-namespace
    

使用 kubectl apply 命令创建资源对象:使用 kubectl apply 命令可以从配置文件中创建或更新资源对象。

    
          kubectl apply -f my-pod.yaml
kubectl apply -f my-deployment.yaml
kubectl apply -f my-service.yaml


使用 kubectl create 命令创建资源对象:使用 kubectl create 命令可以通过命令行参数直接创建资源对象。

    
          kubectl create pod my-pod --image=my-image
kubectl create deployment my-deployment --image=my-image
kubectl create service my-service --port=8080 --target-port=80


从模板生成资源对象:使用 kubectl create 命令结合 --dry-run=client -o yaml 选项可以从模板生成资源对象的配置文件,并进行进一步修改或保存。

    
          kubectl create pod my-pod --image=my-image --dry-run=client -o yaml > my-pod.yaml
kubectl create deployment my-deployment --image=my-image --dry-run=client -o yaml > my-deployment.yaml
kubectl create service my-service --port=8080 --target-port=80 --dry-run=client -o yaml > my-service.yaml

查看资源

查看所有资源对象:使用 kubectl get 命令可以列出当前命名空间中的所有资源对象。

    
          kubectl get all
        


查看特定类型的资源:

    
          kubectl get pods
kubectl get deployments
kubectl get services


查看所有命名空间中的资源:使用 --all-namespaces 选项可以列出所有命名空间中的资源对象。

    
          kubectl get all --all-namespaces
        


使用标签过滤资源:使用 -l 选项可以根据标签过滤资源对象。

    
          kubectl get pods -l app=my-app
kubectl get deployments -l environment=production


显示资源详细信息:使用 -o yaml -o json 选项可以获取资源对象的详细信息,以YAML或JSON格式显示。

    
          kubectl get pods  -o yaml
kubectl get services  -o json


查看资源的事件日志:使用 kubectl describe 命令可以查看资源对象的事件日志,包括创建、更新和删除等操作的详细信息。

    
          kubectl describe pod name>
kubectl describe service name>


使用字段选择器显示特定字段:使用 -o custom-columns 选项可以选择要显示的特定字段,并按自定义列格式输出。

    
          kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase
kubectl get services -o custom-columns=NAME:.metadata.name,TYPE:.spec.type

修改资源

使用 kubectl edit 命令进行交互式编辑:使用 kubectl edit 命令可以在默认编辑器中打开指定资源对象的配置,并进行交互式编辑。

    
          kubectl edit pods 
kubectl edit deployments
kubectl edit services


直接修改原有YAML文件:使用文本编辑器编辑资源对象的YAML配置文件,并使用 kubectl apply -f  命令指定配置文件将更新应用到集群中。

    
          kubectl apply -f my-pod.yaml
kubectl apply -f my-deployment.yaml
kubectl apply -f my-service.yaml


使用 kubectl patch 命令进行部分更新:使用 kubectl patch 命令可以对资源对象进行部分更新,而不必修改整个配置文件。

    
          kubectl patch pods  --patch '{"spec": {"containers": [{"name": "my-container", "image": "new-image"}]}}'
kubectl patch deployments  --patch '{"spec": {"replicas": 3}}'
kubectl patch services  --patch '{"spec": {"type": "LoadBalancer"}}'


使用标签选择器批量修改资源:使用 kubectl label 命令可以使用标签选择器批量修改符合条件的资源对象的标签。

    
          kubectl label pods -l app=my-app new-label=value
kubectl label deployments -l environment=production new-label=value


使用 kubectl annotate 命令添加注释:使用 kubectl annotate 命令可以为资源对象添加注释信息。

    
          kubectl annotate pods  description="www.aliangedu.cn"
kubectl annotate services  owner="www.aliangedu.cn"

删除资源

删除指定类型的资源:使用 kubectl delete 命令可以删除指定类型的资源对象。

    
          kubectl delete pods name>
kubectl delete deployments name>
kubectl delete services name>


删除所有资源对象:使用 --all 选项可以删除当前命名空间中的所有资源对象。

      kubectl delete all --all
    

删除特定命名空间中的资源:使用 -n 选项可以删除指定命名空间中的资源对象。

    
          kubectl delete pods -n 
kubectl delete deployments -n
kubectl delete services -n


删除符合标签选择器条件的资源:使用 -l 选项可以根据标签选择器删除符合条件的资源对象。

    
          kubectl delete pods -l app=my-app
kubectl delete deployments -l environment=production


批量删除资源对象:使用 --filename -f 选项可以从配置文件中批量删除资源对象。

    
          kubectl delete -f my-pods.yaml
kubectl delete -f my-deployments.yaml
kubectl delete -f my-services.yaml


删除命名空间:使用 kubectl delete namespace 命令可以删除指定的命名空间及其所有相关资源对象。

    
          kubectl delete namespace <namespace>
        


请注意,删除操作是不可逆的,并且会立即删除资源对象。在删除资源对象之前,请确保你了解删除操作的影响,并谨慎操作。

    

- END -

      
        
          
              
                
                    
                      
                        
                            
                              
                                   
                                  推荐阅读 
                                  
                                    





                          
                            原来懂Kubernetes,找工作这么吃香! K8S 常用资源 YAML 详解
                            DevOps与CI/CD常见面试问题汇总
                              
我会在Docker容器中抓包了!
Ansible 批量100台服务器添加 Crontab 19 个 K8S集群常见问题总结,建议收藏 运维高可用架构的 6 大常规方案
运维监控指标全方面总结 9 个实用 Shell 脚本,建议收藏!
详解 K8S Helm CI/CD发布流程
ES+Redis+MySQL,这套高可用架构设计太顶了! 一台服务器最大能支持多少条TCP连接? K8S运维必知必会的 Kubectl 命令总结
16 张图硬核讲解 Kubernetes 网络
史上最全 Jenkins Pipeline流水线详解 Jenkins 自动化部署实例讲解,另附安装教程! 主流监控系统 Prometheus 学习指南
                            
                                搭建一套完整的企业级 K8s 集群(二进制方式)
                              
                              
                              
                                  40个 Nginx 常问面试题
                                
                              
                                  Linux运维工程师 50个常见面试题
                                
                              
            
              
                  
                      

点亮,服务器三年不宕机4cc108a2c5f6746b5fe1deb11e0b67b5.webp
浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报