Kubernetes (K8s) 常用命令与进阶命令分享
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化容器化应用的部署、扩展和管理。在日常工作中,熟练掌握K8s的命令行工具kubectl可以极大提升工作效率。本文将分享一些K8s的常用命令和进阶命令,帮助大家更好地管理和运维K8s集群。
一、K8s 常用命令
1. 查看集群信息
kubectl cluster-info
这条命令可以查看当前K8s集群的API Server等控制平面的服务地址。
2. 查看节点状态
kubectl get nodes
这条命令可以查看所有节点的状态,包括是否Ready、内存、CPU等资源情况。
3. 查看Pod信息
kubectl get pods
查看当前命名空间下的所有Pod状态。如果你想查看所有命名空间下的Pod,可以加上-A参数:
kubectl get pods -A
4. 查看Pod详细信息
kubectl describe pod <pod-name>
查看某个Pod的详细信息,包括事件日志、容器状态等,帮助排查问题。
5. 创建资源
kubectl apply -f <file.yaml>
通过YAML文件创建或更新K8s资源。例如,创建一个Deployment、Service等。
6. 删除资源
kubectl delete -f <file.yaml>
通过YAML文件删除指定的K8s资源。
7. 进入Pod容器
kubectl exec -it <pod-name> -- /bin/bash
进入某个Pod中的容器,进行调试或查看日志。如果Pod中有多个容器,可以使用-c参数指定容器名称:
kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
8. 查看日志
kubectl logs <pod-name>
查看某个Pod容器的日志。如果Pod中有多个容器,同样可以使用-c参数指定容器名称:
kubectl logs <pod-name> -c <container-name>
9. 查看命名空间
kubectl get namespaces
查看集群中的所有命名空间。
10. 设置命名空间上下文
kubectl config set-context --current --namespace=<namespace>
切换当前kubectl命令操作的命名空间。
二、K8s 进阶命令
1. 查看资源使用情况
kubectl top nodes
kubectl top pods
kubectl top命令可以查看节点或Pod的CPU和内存使用情况。需要在集群中安装metrics-server才能使用此功能。
2. 自动伸缩
kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=2 --max=10
根据CPU使用率自动伸缩Deployment的Pod数量。此命令会创建一个HorizontalPodAutoscaler (HPA) 对象。
3. 编辑资源
kubectl edit deployment <deployment-name>
直接在命令行中编辑K8s资源,编辑后保存,K8s会自动更新资源。
4. 滚动更新与回滚
kubectl set image deployment <deployment-name> <container-name>=<new-image>:<tag>
更新Deployment中容器的镜像版本,触发滚动更新。
如果更新出现问题,可以使用以下命令回滚到上一个版本:
kubectl rollout undo deployment <deployment-name>
查看滚动更新状态