文章最后更新时间:
![图片[1]- k8s高效命令全掌握,成为k8s运维大神!- 如烟笔记](https://img-1259613606.cos.ap-nanjing.myqcloud.com/LightPicture/2025/02/34918ada3376a814.jpeg)
Kubernetes(k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。
k8s在企业运维中的重要性
- 1. 提高运维效率:
- • 自动化部署:k8s能够自动化地部署、扩展和更新应用程序,减少了人工干预,提高了部署效率。
- • 故障自愈:通过自我修复机制,k8s能够在检测到节点或容器故障时自动重启或重新调度容器,减少了运维人员的工作量。
- 2. 增强系统稳定性:
- • 高可用性:k8s通过多副本部署和自动故障转移等机制,确保了应用程序的高可用性。
- • 负载均衡:k8s内置了负载均衡功能,能够根据流量情况自动分配请求,避免了单点过载。
- 3. 优化资源利用:
- • 动态资源分配:k8s能够根据应用程序的需求动态调整资源分配,避免了资源浪费。
- • 弹性伸缩:根据业务负载的变化,k8s能够自动扩展或缩减容器数量,提高了资源利用率。
- 4. 简化多云管理:
- • 跨云部署:k8s支持跨多个云平台的部署,使得企业能够在不同的云环境之间灵活迁移和管理应用程序。
- • 统一接口:通过提供统一的API接口,k8s简化了对多云资源的管理和操作。
k8s在企业中的使用场景
- 1. 微服务架构:
- • k8s非常适合用于微服务架构的部署和管理。通过将复杂的应用程序拆分成多个小型、独立的服务,并使用k8s进行自动化部署和扩展,可以提高应用程序的可维护性和可扩展性。
- 2. 持续集成/持续部署(CI/CD):
- • k8s能够与CI/CD工具集成,实现自动化构建、测试和部署。这有助于加快应用程序的迭代速度,提高开发效率。
- 3. 大数据处理:
- • 对于需要处理大量数据的应用程序,k8s能够提供高效的数据处理和存储解决方案。通过利用k8s的弹性伸缩能力,可以确保大数据处理任务的顺利完成。
- 4. DevOps实践:
- • k8s支持DevOps实践,通过提供自动化、可重复和可靠的部署流程,促进了开发与运维之间的紧密合作。这有助于减少部署错误和提高应用程序的稳定性。
- 5. 混合云和多云环境:
- • 在混合云或多云环境中,k8s能够帮助企业实现跨云平台的资源管理和应用程序部署。通过提供统一的接口和工具,k8s使得企业能够更加灵活地管理不同云平台上的资源。
总结了100条k8s常用命令,涵盖了资源创建、查询、删除、更新、滚动更新、集群管理、故障诊断等多个方面,希望能帮助你成为k8s大神。
一、基础命令
- 1. kubectl apply -f [file] :使用指定文件中的内容创建或更新资源。
- 2. kubectl create -f [file] :用指定文件中的内容创建资源。
- 3. kubectl delete resource [name] :删除一个资源。
- 4. kubectl delete -f [file] :从指定文件中删除资源。
- 5. kubectl edit resource [name] :编辑某个资源的定义。
- 6. kubectl get [resource] :查看资源的列表。
- 7. kubectl describe [resource] [name] :查看资源的详细信息。
- 8. kubectl explain [resource] :查看资源的字段描述。
- 9. kubectl api-versions :查看API版本。
- 10. kubectl cluster-info :查看集群信息。
- 11. kubectl config current-context:查看当前上下文的名称。
- 12. kubectl config get-contexts:查看上下文的列表。
- 13. kubectl config set-context [name] :设置当前上下文。
- 14. kubectl config use-context [name] :切换到指定的上下文。
二、资源操作命令
15 . kubectl run [name] –image=[image] :使用指定镜像创建一个pod。
16 . kubectl scale [resource] [name] –replicas=[number] :为某个资源设置副本数。
17 . kubectl set image [resource] [name] [container]=[image] :为某个资源的某个容器设置镜像。
18 . kubectl expose [resource] [name] –port=[port] –target-port=[target-port] –type=[type] :为指定资源创建服务。
19 . kubectl label [resource] [name] [key]=[value] :为某个资源设置标签。
20 . kubectl annotate [resource] [name] [key]=[value] :为某个资源设置注释。
21 . kubectl taint [node] [key]=[value]:[effect] :在节点上设置污点。
22 . kubectl uncordon [node] :解除节点的停机维护状态。
23 . kubectl cordon [node] :标记节点为不可调度。
24 . kubectl drain [node] :排空节点以准备维护。
三、Pod操作命令
25 . kubectl exec [pod] [command] :在运行的pod中执行一个命令。
26 . kubectl logs [pod] :查看pod的日志。
27 . kubectl port-forward [pod] [localPort:remotePort] :将pod的端口转发到本地。
28 . kubectl attach [pod] :连接到运行中的容器。
29 . kubectl cp [file-path] [namespace]/[pod]:[container-path] :复制文件到pod或从pod复制文件。
四、滚动更新命令
30 . kubectl rollout status [resource] [name] :查看一个滚动更新的状态。
31 . kubectl rollout undo [resource] [name] :撤销一个滚动更新。
32 . kubectl rollout history [resource] [name] :查看一个滚动更新的历史记录。
33 . kubectl rollout restart [resource] [name] :重新启动一个滚动更新。
34 . kubectl rollout pause [resource] [name] :暂停一个滚动更新。
35 . kubectl rollout resume [resource] [name] :恢复一个滚动更新。
五、集群管理命令
36 . kubectl top [resource] [name] :查看资源的使用情况。
37 . kubectl certificate approve [name] :批准证书签发请求。
38 . kubectl certificate deny [name] :拒绝证书签发请求。
39 . kubectl auth can-i [verb] [resource] :查看当前用户是否有指定动作的权限。
40 . kubectl api-resources :输出服务端API支持的资源类型。
六、高级命令
41 . kubectl diff -f [file] :比较本地文件和远程资源之间的区别。
42 . kubectl patch [resource] [name] :更新资源的字段。
43 . kubectl replace -f [file] :通过文件名替换一个资源。
44 . kubectl kustomize [directory] :从指定目录构建kustomization目标。
45 . kubectl wait [conditions] :等待一个或多个资源满足特定条件。
七、调试与日志命令
46 . kubectl logs [pod] -f :实时查看pod的日志。
47 . kubectl logs [pod] –tail=N :查看pod的最后N行日志。
48 . kubectl logs [pod] | grep [keyword] :根据关键字查看pod的日志。
49 . kubectl debug [pod] :对指定的pod进行调试。
八、其他常用命令
50 . kubectl version :查看集群的版本信息。
51 . kubectl namespace :查看或管理命名空间。
52 . kubectl completion :输出shell自动补全代码。
53 . kubectl label nodes [node-name] [label-key]=[label-value] :给节点打标签。
54 . kubectl label nodes [node-name] [label-key]- :删除节点的标签。
55 . kubectl taint nodes [node-name] [key]=value:[effect] :给节点添加污点。
56 . kubectl taint nodes [node-name] [key]:[effect]- :删除节点的污点。
57 . kubectl edit svc/[service-name] :编辑指定的service。
58 . kubectl get pods -A :查看所有命名空间下的pod。
59 . **kubectl get pods -n [namespace]**:查看指定命名空间下的pod。
60 . kubectl get nodes –show-labels:查看所有节点及其标签。
61 . kubectl get services:查看集群中服务的状态。
62 . kubectl get statefulset:查看statefulset列表。
63 . kubectl describe nodes:显示集群节点资源的使用情况以及标签。
64 . kubectl describe pods:显示指定pod的详细信息。
65 . kubectl describe quota:查看集群的资源配额。
66 . kubectl describe limitrange:查看集群的资源限制。
67 . kubectl get pod -o wide | grep [keyword] :查询包含特定关键字的pod,并输出详细信息。
九、资源管理与扩展命令
68 . kubectl autoscale [resource] [name] –min=[min-replicas] –max=[max-replicas] :为资源设置自动扩缩容。
69 . kubectl scale deployment [name] –replicas=[number] :为deployment设置副本数。
70 . kubectl top node [node-name] :查看指定节点的资源使用情况。
71 . kubectl top pod [pod-name] -n [namespace] :查看指定命名空间下pod的资源使用情况。
十、特定资源类型操作命令
72 . kubectl create secret [type] [name] –from-file=[file] :创建secret资源。
73 . kubectl create configmap [name] –from-file=[file] :创建configmap资源。
74 . kubectl get secrets :查看集群中的secret资源。
75 . kubectl get configmaps :查看集群中的configmap资源。
76 . kubectl delete secret [name] :删除指定的secret资源。
77 . kubectl delete configmap [name] :删除指定的configmap资源。
十一、与存储相关的命令
78 . kubectl create persistentvolume [name] –capacity=[capacity] –accessmodes=[modes] :创建persistentvolume资源。
79 . kubectl create persistentvolumeclaim [name] –accessmodes=[modes] –storageclass=[class] –request-storage=[size] :创建persistentvolumeclaim资源。
80 . kubectl get persistentvolumes :查看集群中的persistentvolume资源。
81 . kubectl get persistentvolumeclaims :查看集群中的persistentvolumeclaim资源。
十二、与网络相关的命令
82 . kubectl create networkpolicy [name] –pod-selector=[selector] :创建networkpolicy资源以控制pod间的网络通信。
83 . kubectl get networkpolicies :查看集群中的networkpolicy资源。
十三、与RBAC(基于角色的访问控制)相关的命令
84 . kubectl create role [name] –verb=[verbs] –resource=[resources] –namespace=[namespace] :创建role资源。
85 . kubectl create rolebinding [name] –role=[role-name] –user=[username] –namespace=[namespace] :创建rolebinding资源以将role绑定到用户。
86 . kubectl get roles :查看集群中的role资源。
87 . kubectl get rolebindings :查看集群中的rolebinding资源。
十四、CronJob与定时任务相关命令
88 . **kubectl create cronjob [name] –image=[image] –schedule=”[cron expression]”**:创建CronJob资源,用于按指定计划运行容器。
89 . kubectl get cronjobs:查看集群中所有的CronJob资源。
90 . **kubectl describe cronjob [name]**:查看指定CronJob的详细信息。
十五、高级配置与管理命令
91 . kubectl proxy :启动一个代理服务器,可以通过浏览器访问Kubernetes API。
92 . kubectl api-resources –verbs=list,watch,create,update,patch,delete :列出所有支持特定操作的API资源。
93 . kubectl plugin list :列出所有已安装的kubectl插件。
94 . kubectl completion bash :生成bash自动补全脚本。
95 . kubectl config set-cluster [cluster-name] –server=[server] –certificate-authority=[cert-path] :设置集群信息。
96 . kubectl config set-credentials [user-name] –client-certificate=[cert-path] –client-key=[key-path] –token=[token] :设置用户凭据。
97 . kubectl config set-context [context-name] –cluster=[cluster-name] –user=[user-name] –namespace=[namespace] :设置上下文。
十七、自定义资源定义(CRD)相关命令
98 . kubectl apply -f [crd-yaml-file] :应用自定义资源定义(CRD)文件,创建新的资源类型。
99 . kubectl get crd :列出所有已定义的自定义资源。
100 . kubectl get [crd-plural] :查看特定自定义资源的实例列表,其中[crd-plural]
是CRD定义中的plural
字段值。
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「RuYan」发布的内容若侵犯到您的权益,请联系站长邮箱:axspring@qq.com 进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。
暂无评论内容