K8S常用指令(必备)


一、基本操作
1. kubectl version - 显示kubectl的版本信息
2. kubectl cluster-info - 显示集群的基本信息
3. kubectl get nodes - 显示所有的节点信息
4. kubectl get pods - 显示所有的pods信息
5. kubectl create deployment {name} --image={image} - 创建pods
6. kubectl scale deployment {name} --replicas={num} - 修改pods的数量
7. kubectl describe pod {name} - 显示指定的pod的详细信息
8. kubectl logs {name} - 显示指定pod的日志信息
9. kubectl exec -it {name} -- /bin/bash - 进入指定pod的bash终端
10. kubectl delete deployment {name} - 删除pods
11. kubectl edit svc {name} - 编辑svc
二、调试和故障排查
1. kubectl describe node {name} - 显示指定节点的详细信息
2. kubectl describe deployment {name} - 显示指定deployment的详细信息
3. kubectl describe service {name} - 显示指定service的详细信息
4. kubectl get events - 显示所有事件信息
5. kubectl get events --sort-by=.metadata.creationTimestamp - 显示所有事件信息,并按照创建时间排序
6. kubectl get pods --all-namespaces - 显示所有namespace下的pods信息
7. kubectl get deployments --all-namespaces - 显示所有namespace下的deployment信息
8. kubectl get services --all-namespaces - 显示所有namespace下的service信息
9. kubectl get nodes -o yaml | grep -A5 -B2 SchedulingDisabled - 显示所有已禁用调度的节点信息
10. kubectl run -i --tty busybox --image=busybox --restart=Never -- sh - 运行一个busybox容器并进行调试
三、部署和管理
1. kubectl create deployment {name} --image={image} --replicas={num} --port={port} - 创建deployment
2. kubectl expose deployment {name} --port={port} --target-port={targetport} --type={type} - 创建service
3. kubectl set image deployment/{name} {container}={image}:{tag} - 更新deployment中某个容器的镜像
4. kubectl rollout history deployment/{name} - 显示指定deployment的版本历史
5. kubectl rollout undo deployment/{name} --to-revision=1 - 回滚指定deployment到指定版本
6. kubectl rollout pause deployment/{name} - 暂停指定deployment的升级
7. kubectl rollout resume deployment/{name} - 恢复指定deployment的升级
8. kubectl rollout status deployment/{name} - 显示指定deployment的升级状态
8. kubectl rollout restart deployment/{name} - 热重启deployment
9. kubectl exec -it {name} -- /bin/bash - 在指定pod中进入bash终端
10. kubectl apply -f {filename} - 根据指定的yaml文件部署kubernetes资源
四、安全和访问控制
1. kubectl create secret generic {name} --from-file={key}={path} - 创建secret对象
2. kubectl create serviceaccount {name} - 创建serviceaccount对象
3. kubectl create role {name} --resource={resource} --verb={verb} - 创建role对象
4. kubectl create rolebinding {name} --role={role} --serviceaccount={namespace}:{sa_name} - 创建rolebinding对象
5. kubectl get secret {name} -o=jsonpath='{.data.{key}}' | base64 --decode - 显示secret中指定key的值
6. kubectl delete secret {name} - 删除指定的secret对象
7. kubectl get serviceaccount {name} - 显示指定的serviceaccount对象信息
8. kubectl create clusterrole {name} --resource={resource} --verb={verb} - 创建clusterrole对象
9. kubectl create clusterrolebinding {name} --clusterrole={role} --serviceaccount={namespace}:{sa_name} - 创建clusterrolebinding对象
10. kubectl auth can-i <VERB> <RESOURCE> [--namespace=<NAMESPACE>] - 检查当前用户在某个ns是否有执行指定资源操作的权限
- <VERB>:表示要执行的操作,例如 create,get,update 等。
- <RESOURCE>:表示资源类型,例如 pods,deployments,services 等。
--namespace=<NAMESPACE>:(可选)表示在指定的命名空间中搜索资源。
五、网络和负载均衡
1. kubectl get svc {name} -o jsonpath='{.spec.clusterIP}' - 显示指定service的cluster IP地址
2. kubectl get endpoints {name} - 显示指定service的后端地址信息
3. kubectl get ingress {name} - 显示指定ingress的详细信息
4. kubectl create ingress {name} --rule={host}/{path}=svc:{service_name}:{port} - 创建ingress条目
5. kubectl delete ingress {name} - 删除指定的ingress条目
6. kubectl get svc {name} -o jsonpath='{.spec.type}' - 显示指定service的类型信息
7. kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.podIP}{"\n"}{end}' - 显示所有pods的名称和IP地址信息
8. kubectl exec -it {name} -- nc -z -v {ip} {port} - 在指定pod中使用nc工具测试TCP连接
9. kubectl exec -it {name} -- curl {url} - 在指定pod中使用curl工具测试HTTP连接
10. kubectl get pods -l {label} - 显示所有带有指定label的pods的信息
六、容器高级操作
1. kubectl exec -it <pod_name> -- <command>:在运行中的 Pod 内部启动一个新的容器,并在其中执行指定的命令。
2. kubectl cp <pod_name>:<container_path> <host_path>:将 Pod 内指定路径的文件或目录拷贝到主机上。
3. kubectl logs <pod_name> <container_name>:查看 Pod 内指定容器的日志输出。
4. kubectl port-forward <pod_name> <local_port>:<pod_port>:将本地端口与 Pod 内部的特定端口进行转发,从而可以通过本地网络访问 Pod 中的服务。
5. kubectl describe pod <pod_name>:查看 Pod 的详细信息,例如 Pod 的状态、资源限制和调度信息等。
6. kubectl top pod <pod_name>:查看 Pod 的 CPU 和内存使用情况。
7. kubectl get pod <pod_name> -o yaml:获取 Pod 的 YAML 文件,可以用于备份或还原 Pod。
8. kubectl rollout restart deployment <deployment_name>:强制重启 Deployments 中的所有 Pod,以便应用程序更新能够生效。
9. kubectl attach <pod_name> -c <container_name>:将当前终端附加到 Pod 中指定的容器上,从而可以直接在该容器内操作。
10. kubectl apply -f <resource_file.yml>:使用 YAML 或 JSON 文件部署 Pod,支持声明式配置管理。
七、状态查询和修改
1. kubectl get deployments.apps {name} - 显示指定deployment的详细信息
2. kubectl get deployments.apps -A - 显示所有namespace下的deployment信息
3. kubectl get replicasets.apps {name} - 显示指定replicaset的详细信息
4. kubectl get replicasets.apps -A - 显示所有namespace下的replicaset信息
5. kubectl get services -A - 显示所有namespace下的service信息
6. kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' - 显示所有pods的名称信息
7. kubectl get pod {name} -o jsonpath='{range .status.conditions[?(@.type=="Ready")]}{.status}{"\n"}{end}' - 显示指定pod的Ready状态
8. kubectl get pod {name} -o jsonpath='{range .status.conditions[?(@.type=="Ready")]}{.message}{"\n"}{end}' - 显示指定pod的Ready状态信息
9. kubectl get pod {name} -o jsonpath='{range .status.conditions[?(@.type=="Ready")]}{.reason}{"\n"}{end}' - 显示指定pod的Ready状态原因信息
10. kubectl delete pod {name} --force --grace-period=0 - 强制删除指定pod
八、状态修复和调整
1. kubectl get pods -o jsonpath='{range .items[?(@.status.phase=="Pending")]}{.metadata.name}{"\t"}{.reason}{"\n"}{end}' - 显示所有处于Pending状态的pods
2. kubectl describe pod {name} - 显示指定pod的详细信息
3. kubectl describe node {name} - 显示指定节点的详细信息
4. kubectl describe deployment {name} - 显示指定deployment的详细信息
5. kubectl delete pod {name} --force --grace-period=0 - 强制删除指定pod
6. kubectl delete deployment {name} - 删除指定deployment
7. kubectl delete service {name} - 删除指定service
8. kubectl rollout restart deployment {name} - 重启指定deployment
9. kubectl rollout undo deployment {name} - 回滚指定deployment
10. kubectl scale deployment {name} --replicas={num} - 修改指定deployment的pod数量
九、自定义资源
1. kubectl api-versions - 显示kubernetes API上的所有版本
2. kubectl api-resources - 显示kubernetes API上的所有资源
3. kubectl get crds - 显示集群中所有自定义资源的定义
4. kubectl create -f {filename} - 创建自定义资源对象
5. kubectl get crd {name} - 显示指定自定义资源的定义
十、日志和监控
1. kubectl logs {name} - 显示指定pod的日志信息
2. kubectl logs --tail={num} {name} - 显示指定pod最后几条日志信息
3. kubectl logs -f {name} - 实时显示指定pod的日志信息
4. kubectl top nodes - 显示所有节点的CPU和内存使用情况
5. kubectl top pods - 显示所有pods的CPU和内存使用情况
6. kubectl get events - 显示所有事件信息
十一、扩展和插件
1. kubectl plugin list - 查看已安装的插件
2. kubectl plugin install https://github.com/kubernetes-sigs/krew/releases/latest/download/krew.{tar.gz|zip} - 安装krew插件管理器
3. kubectl plugin install {name} - 安装指定插件
4. kubectl krew search {name} - 搜索krew插件
5. kubectl krew uninstall {name} - 卸载指定插件
十二、高可用和容错
1. kubectl get endpoints {name} - 显示指定service的后端地址信息
2. kubectl get svc {name} -o jsonpath='{.spec.selector}' - 显示指定service的标签选择器
3. kubectl get pods -o jsonpath='{.items[*].metadata.labels}' - 显示所有pods的标签信息
4. kubectl label pods {name} {label}={value} - 给指定pod打上标签
5. kubectl taint node {name} key=value:taint_effect - 在指定节点上添加taint特性
6. kubectl drain <NODE_NAME>: 将节点设置为不可调度状态,以便于维护和升级该节点,并避免丢失重要的运行数据。
7. kubectl cordon <NODE_NAME>: 阻止新的 Pod 调度到特定的节点上,以避免在节点维护期间出现过多负载。
8. kubectl uncordon <NODE_NAME>: 允许新的 Pod 调度到指定的节点上,以恢复该节点的正常工作状态。
9. kubectl get componentstatuses: 获取集群中各个组件(如 kube-apiserver、kube-controller-manager、kube-scheduler 等)的当前健康状态,以确保集群的高可用性和稳定性。
10. kubectl debug <pod-name> -c <container-name> -it -- /bin/bash:在指定的 Pod 中的容器中运行一个新的 bash 进程,以便进行调试。
十三、Web界面
1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml - 部署kubernetes dashboard
2. kubectl proxy - 打开kubernetes API服务的代理端口
3. 访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/ - 使用Web界面访问kubernetes dashboard
十四、资源限制和优化
1. kubectl describe pod {name} - 显示指定pod的详细信息
2. kubectl describe node {name} - 显示指定节点的详细信息
3. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.limits.cpu}' - 显示指定pod的CPU限制
4. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.limits.memory}' - 显示指定pod的内存限制
5. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.requests.cpu}' - 显示指定pod的CPU请求
6. kubectl get pod {name} -o jsonpath='{.spec.containers[*].resources.requests.memory}' - 显示指定pod的内存请求
7. kubectl get node {name} -o jsonpath='{.status.allocatable.cpu}' - 显示指定节点可用的CPU数量
十五、集群管理和维护
1. kubectl cluster-info - 显示集群的基本信息
2. kubectl get nodes - 显示所有的节点信息
3. kubectl get pods - 显示所有的pods信息
4. kubectl get deployments - 显示所有的deployment信息
5. kubectl get services - 显示所有的service信息
6. kubectl get namespaces - 显示所有的namespace信息
7. kubectl get events - 显示所有的事件信息
8. kubectl get configmaps - 显示所有的configmap信息
9. kubectl get secrets - 显示所有的secret信息
10. kubectl apply -f {filename} - 根据指定的yaml文件部署kubernetes资源
十六、镜像和存储
1. kubectl get nodes -o jsonpath='{.items[*].status.allocatable.attachable-volumes-aws-ebs}' - 显示可用的AWS EBS存储卷数量
2. kubectl get pods -o jsonpath='{.items[*].spec.volumes[*].name}' - 显示所有pods中使用的卷名称
3. kubectl get storageclass - 显示所有的storageclass信息
4. kubectl get persistentvolumeclaim - 显示所有的pvc信息
5. kubectl get persistentvolume - 显示所有的pv信息
十七、自动化和脚本化
1. kubectl apply -f {filename} - 使用yaml文件自动创建kubernetes资源
2. kubectl delete -f {filename} - 使用yaml文件自动删除kubernetes资源
3. kubectl create deployment {name} --image={image} --dry-run -o yaml > {filename} - 生成deployment的yaml文件
4. kubectl create service {name} --tcp={port}:{targetport} --dry-run -o yaml > {filename} - 生成service的yaml文件
5. kubectl create secret generic {name} --from-literal=key=value --dry-run -o yaml > {filename} - 生成secret的yaml文件
6. kubectl create cronjob [job_name] --image=[image_name] --schedule='*/1 * * * *' --restart=OnFailure --dry-run -o yaml > [file_name].yaml:创建一个CronJob实例,并将其定义文件保存到指定的YAML文件中。
7. kubectl annotate <RESOURCE_TYPE> <RESOURCE_NAME> <KEY>=<VALUE>: 给指定类型的资源对象添加注释。
十八、部署和发布
1. kubectl create deployment {name} --image={image} --replicas={num} --port={port} - 创建deployment
2. kubectl scale deployment {name} --replicas={num} - 修改deployment的pod数量
3. kubectl autoscale deployment {name} --cpu-percent={percent} --min={min} --max={max} - 自动扩缩deployment的pod数量
4. kubectl create service {name} --tcp={port}:{targetport} - 创建service
5. kubectl expose deployment {name} --port={port} --target-port={targetport} --type={type} - 创建service

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,我无法提供思维导图。但是,我可以为您提供一些常用的Kubernetes命令。以下是一些常用的Kubernetes命令: 1. kubectl get pods:获取当前集群中的所有Pods的信息。 2. kubectl get deployments:获取当前集群中的所有Deployments的信息。 3. kubectl get services:获取当前集群中的所有Services的信息。 4. kubectl create deployment \[deployment-name\] --image=\[image-name\]:创建一个新的Deployment。 5. kubectl scale deployment \[deployment-name\] --replicas=\[number\]:扩展或缩小一个Deployment的副本数量。 6. kubectl delete deployment \[deployment-name\]:删除一个Deployment。 7. kubectl describe pod \[pod-name\]:获取一个Pod的详细信息。 8. kubectl logs \[pod-name\]:获取一个Pod的日志。 9. kubectl exec -it \[pod-name\] -- \[command\]:在一个Pod中执行一个命令。 10. kubectl apply -f \[file-name\]:使用一个YAML文件创建或更新资源。 这些是一些常用的Kubernetes命令,可以帮助您管理和操作Kubernetes集群中的资源。希望对您有所帮助! #### 引用[.reference_title] - *1* *2* *3* [k8s学习-思维导图与学习笔记](https://blog.csdn.net/lady_killer9/article/details/124544947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值