k8s常用命令
语法
kubectl [command] [TYPE] [NAME] [flags]
其中:
- command:对资源执行的操作,如 create、get、describe、delete。
- TYPE:资源类型,不区分大小写,可以是单数、复数或缩写形式,以下命令输出结果相同:
- kubectl get pod pod1
- kubectl get pods pod1
- kubectl get po pod1
- NAME:资源名称,区分大小写,省略则显示所有资源的详细信息,如 kubectl get pods。对多个资源操作时,可以按类型和名称指定每个资源,或指定一个或多个文件
-
- 类型相同的资源,如:kubectl get pod example-pod1 example-pod2
- 多个资源类型,如:kubectl get pod/example-pod1 replicationcontroller/example-rc1
- 一个或多个文件,如:kubectl get -f pod1.yaml -f pod2.yaml
- flags:可选参数,如,使用 -s 或 --server 参数指定 Kubernetes API 服务器的地址和端口。
常用命令
kubectl get
kubectl get pods -A # 查看所有命名空间下的所有pod,-A与--all-namespaces效果相同 kubectl get pods -n namespace1 pod1 # 查看命名空间namespace1下的指定pod kubectl get pods -o wide # 查看默认命名空间下的所有pod,并包含附加信息,如节点名
kubectl get rc,svc -A # 查看所有副本控制器和服务
kubectl get pods -o yaml # 查看默认命名空间下的所有pod,以yaml格式显示
kubectl get ns # 查看命名空间列表
kubectl get nodes # 节点和服务版本信息
kubectl get deploy -A # 查看所有部署
kubectl apply
kubectl apply -f example-service.yaml # 使用 example-service.yaml 中的定义应用或更新服务
kubectl apply -f <directory> # 应用资源,该目录下的所有 .yaml, .yml, 或 .json 文件都会被使用
kubectl describe
kubectl describe pods/nginx # 描述名称为nginx的pod的信息 kubectl describe po -l name=label0 # 描述label名为label0的pod信息
kubectl delete
kubectl delete -k dir # 使用目录下的yaml删除 kubectl delete -f pod.yaml # 使用 pod.yaml 文件中指定的类型和名称删除 pod kubectl delete pod,svc -l name=myLabel # 删除label名为myLabel的pod和service
kubectl delete pods --all # 删除所有pod,包括未初始化的pod
kubectl exec
kubectl exec <pod-name> -c <container-name> -- date # 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。 kubectl exec -ti <pod-name> -- /bin/bash # 获取一个交互 TTY 并在 Pod <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl logs
kubectl logs nginx # 查看名称为nginx的Pod中只有一个容器的日志 kubectl logs -f -c ruby web-1 # 查看名称为web-1的pod中的名称为ruby的容器的日志流 kubectl logs --since=1h nginx # 显示名称为nginx的pod中,最近一小时的全部日志
kubectl logs deployment/nginx -c nginx-1 # 查看名称为nginx的deployment中的容器叫做nginx-1的日志
kubectl scale
kubectl scale --replicas=3 rs/foo # 将名为foo的pod副本数设置为3 kubectl scale --replicas=3 -f foo.yaml # 将由“foo.yaml”配置文件中指定的资源对象和名称标识的Pod资源副本设为3。 kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 如果当前副本数为2,则将其扩展至3。 kubectl scale --replicas=5 rc/foo rc/bar rc/baz # 设置多个RC中Pod副本数量。
kubectl expose
kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort # Pod的80端口映射容器的8080;service会代理Pod的80并开放一个随机端口供集群外部访问服务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?