K8S
基础
常用命令

常用命令

部署

# 应用 manifest 去部署或修改资源
kubectl apply -f [manifest.yaml] 
 
# 使用文本编辑器在线编辑 manifests
kubectl edit [resource_type] [resource_name/id] # Edit the manifest of a resource using a text editor

查看状态

# 通用查询命令
kubectl get [resource_type]
 
# Deployments
kubectl get deployments # 查询所有运行 Deployments
kubectl get deployment [deployment-name] # 查询指定的 Deployment
 
# Services
kubectl get services # 查询当前 Namespace 下所有 Service
kubectl get services --sort-by=.metadata.name # 按照 name 排序
kubectl get services --namespace [namespace] # 查询指定 Namespace 下所有 Service
 
# PVCs
kubectl get pvc # 查询当前 Namespace 下所有 PVC
 
# Pods
kubectl get pods # 查询当前 Namespace 下所有 Pod
kubectl get pods -o wide # 包含更多详细信息
kubectl get pods --namespace [namespace] # 查询指定 Namespace 下所有 Pod
 
# 查询每个 Pod 申请的 CPU、GPU、内存
# 注意:必须安装 jq 工具
kubectl get pods -o json | jq '.items[] | {name: .metadata.name, cpu: .spec.containers[].resources.requests.cpu, gpu: .spec.containers[].resources.requests."nvidia.com/gpu", memory: .spec.containers[].resources.requests.memory}'

查看详情和日志

# 通用查询详情命令
kubectl describe [resource_type] [resource_name/id]
 
# Pods
kubectl describe pods # 查询所有 Pod 详情
kubectl describe pod [pod_id] # 查询指定 Pod 详情
kubectl describe pod [pod_id] -o yaml # 以 YAML 格式输出指定 Pod 详情
 
# Logs
kubectl logs -f [pod_id] # 从头查看指定 Pod 的日志并监听变化
kubectl logs --tail 100 -f [pod_id] # 从最后 100 行查看指定 Pod 的日志并监听变化

删除资源

kubectl delete [resource_type] [resource_name/id]
kubectl delete pod [pod_id] # 删除一个 Pod,Deployment 会创建一个新的
kubectl delete deployment [deployment_name] # 删除 Deployment 不会自动再重新启动

调整 Deployment 的副本数

kubectl scale --replicas=[number] [resource_type]/[resource_name/id]
 
## 调整 Deployment 的副本数到 [number]
kubectl scale --replicas=[number] deployments/[deployment_name]

交互访问 Pod

kubectl exec -it [pod_id] /bin/bash # 在 Pod 中打开 bash shell