kubectl 基础命令
kubectl
简介
- kubectl 是 Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互和管理。
- 它可以用来部署应用程序,管理集群资源(例如 Pod、Service 和 ReplicaSet 等),
- 诊断和调试问题,以及执行其他与 Kubernetes 相关的任务。通过 kubectl,您可以在命令行界面中执行所有 Kubernetes API 操作,并对集群的状态进行操作。
- kubectl 是使用 Go 语言编写的开源软件,在安装了 Kubernetes 的任何机器上均可使用。
基础命令
好的,为了更加详细地回答您的问题,以下是一些 kubectl 的基础命令及其用法:
-
获取集群信息:
1 2 3 4 5
# 查看 Kubernetes 集群信息 kubectl cluster-info # 查看节点列表 kubectl get nodes
-
获取资源对象信息:
1 2 3 4 5 6 7 8 9 10 11
# 获取 Pod 列表 kubectl get pods # 获取 Service 列表 kubectl get services # 获取 Deployment 列表 kubectl get deployments # 获取 ReplicaSet 列表 kubectl get replicasets
-
创建、更新和删除资源对象:
1 2 3 4 5 6 7 8
# 通过 YAML 文件创建资源对象 kubectl create -f <YAML_FILE> # 更新资源对象 kubectl apply -f <YAML_FILE> # 删除资源对象 kubectl delete -f <YAML_FILE>
-
查看资源对象的详细信息:
1 2 3 4 5 6 7 8 9 10 11
# 查看 Pod 详细信息 kubectl describe pod <POD_NAME> # 查看 Service 详细信息 kubectl describe service <SERVICE_NAME> # 查看 Deployment 详细信息 kubectl describe deployment <DEPLOYMENT_NAME> # 查看 ReplicaSet 详细信息 kubectl describe replicaset <REPLICASET_NAME>
-
查看 Pod 日志:
1
kubectl logs <POD_NAME>
-
进入 Pod 中的容器:
1
kubectl exec -it <POD_NAME> bash
-
扩容和缩容应用程序:
1 2 3 4 5
# 扩容 Deployment 的副本数 kubectl scale --replicas=<REPLICA_COUNT> deployment/<DEPLOYMENT_NAME> # 缩容 Deployment 的副本数 kubectl scale --replicas=<REPLICA_COUNT> deployment/<DEPLOYMENT_NAME>
-
滚动升级应用程序:
1 2 3 4 5 6 7 8
# 开始滚动升级 kubectl set image deployment/<DEPLOYMENT_NAME> <CONTAINER_NAME>=<NEW_IMAGE>:<TAG> # 查看滚动升级状态 kubectl rollout status deployment/<DEPLOYMENT_NAME> # 回滚到先前的版本 kubectl rollout undo deployment/<DEPLOYMENT_NAME>
高级命令
好的,以下是一些更加高级的 kubectl 命令及其用法:
-
使用 kubectl port-forward 命令将本地端口绑定到 Pod 端口:
1
kubectl port-forward <POD_NAME> <LOCAL_PORT>:<REMOTE_PORT>
该命令会将本地端口
<LOCAL_PORT>
绑定到远程 Pod 的端口<REMOTE_PORT>
。例如,要将本地端口 8080 绑定到名为my-pod
的 Pod 中的端口 80,可以使用以下命令:1
kubectl port-forward my-pod 8080:80
-
使用 kubectl cp 命令在容器和本地文件系统之间复制文件:
1 2
kubectl cp <POD_NAME>:<CONTAINER_PATH> <LOCAL_PATH> kubectl cp <LOCAL_PATH> <POD_NAME>:<CONTAINER_PATH>
该命令可以将文件从本地文件系统复制到运行中的容器中,或者将文件从容器中复制到本地文件系统中。例如,要将名为
my-pod
的容器中的/app/logs
目录复制到本地文件系统中的/tmp
目录,可以使用以下命令:1
kubectl cp my-pod:/app/logs /tmp
-
使用 kubectl top 命令查看节点和 Pod 的 CPU 和内存使用情况:
1 2 3 4 5
# 查看节点的 CPU 和内存使用情况 kubectl top node # 查看 Pod 的 CPU 和内存使用情况 kubectl top pod
-
使用 kubectl proxy 命令在 Kubernetes API 服务器和本地之间建立代理:
1
kubectl proxy
该命令会在本地启动一个代理,将 Kubernetes API 服务器和本地连接起来。通过访问
http://localhost:8001
,您可以访问 Kubernetes API,并查看集群状态、部署资源等。
This post is licensed under
CC BY 4.0
by the author.