查看原文
其他

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

阿龙 DevOps技术栈 2024-02-25

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

作为一名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 <pod-name> -o yaml
kubectl get services <service-name> -o json


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

kubectl describe pod <pod-name>
kubectl describe service <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 <pod-name>
kubectl edit deployments <deployment-name>
kubectl edit services <service-name>


直接修改原有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 <pod-name> --patch '{"spec": {"containers": [{"name": "my-container", "image": "new-image"}]}}'
kubectl patch deployments <deployment-name> --patch '{"spec": {"replicas": 3}}'
kubectl patch services <service-name> --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 <pod-name> description="www.aliangedu.cn"
kubectl annotate services <service-name> owner="www.aliangedu.cn"

删除资源

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

kubectl delete pods <pod-name>
kubectl delete deployments <deployment-name>
kubectl delete services <service-name>


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

kubectl delete all --all

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

kubectl delete pods -n <namespace>
kubectl delete deployments -n <namespace>
kubectl delete services -n <namespace>


删除符合标签选择器条件的资源:使用 -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台服务器添加 Crontab19 个 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个常见面试题


点亮,服务器三年不宕机
继续滑动看下一个

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

阿龙 DevOps技术栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存