Kubernetes (K8s) 常用命令与进阶命令分享

298 阅读2分钟

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>

查看滚动更新状态