醋醋百科网

Good Luck To You!

Kubernetes(K8s)常用命令

一. 集群管理

1. 查看集群节点状态:

kubectl get nodes

2. 查看集群资源使用情况(需要安装metric-server):

kubectl top nodes

#查看pod资源使用情况
kubectl top pod

3. 查看集群信息:

kubectl cluster-info

4. 获取节点详细信息:

kubectl describe node <node-name>

5. 给节点添加标签:

kubectl label nodes <node-name> key=value

6. 删除节点上的标签:

kubectl label nodes <node-name> key-

7. 查看命名空间信息

kubectl describe namespace <namespace-name>


二. Pod管理

k8s中最小的可部署的单元,也是k8s的核心组件。封装一个或多个紧密相关的容器应用,不同的pod之间可以共享存储和网络配置。

1. 列出所有Pod:

kubectl get pod

#查看所有空间的pod
kubectl get pod

#查看指定空间的pod
kubectl get pod -n <namespace>

2. 查看特定Pod的日志:

kubectl logs <pod-name> -n <namespace>
#其中`-n`后面跟命名空间名称,如果是在默认命名空间,可以省略。

3. 运行一个临时的Pod:

kubectl run nginx-test --image=nginx

4. 进入正在运行的Pod:

kubectl exec -it <pod-name> -n <namespace> -- /bin/bash

5. 查看Pod的详细信息:

kubectl describe pod <pod-name> -n <namespace>

#查看event事件
kubectl describe pod <pod-name> -n <namespace> | grep -i events

6. 删除Pod:

kubectl delete pod <pod-name> -n <namespace>
  
#强制删除pod
kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0


三. Deployment管理

在k8s中,deployment用于管理Pod的生命周期,自动化管理Pod的创建、升级、回滚等。

1. 列出所有Deployments:

kubectl get deployments

#简写
kubectl get deploy

2. 查看特定Deployment的详细信息:

kubectl describe deployment <deployment-name> -n <namespace>

3. 创建Deployment:

kubectl create deployment <deployment-name> --image=<container-image>
kubectl create deployment my-deploy --image=nginx

4. 更新Deployment中的容器镜像:

kubectl set image deployment/<deployment-name> <container-name>=<new-container-image>
kubectl set image deployment/my-deployment nginx=nginx:latest

5. 回滚Deployment到上一个版本:

kubectl rollout undo deployment/my-deploy

6. 查看Deployment的更新历史:

kubectl rollout history deployment <deployment-name>

7. 回滚到指定版本的Deployment:

#回滚到第2次修订版
kubectl rollout undo deployment <deployment-name> --to-revision=2

8. 查看Deployment指定标签下的的Pods状态

kubectl get pods -l app=<deployment-label>

9. 查看Deployment的事件:

kubectl describe deployment <deployment-name> | grep -i events

10. 查看Deployment的更新进度:

kubectl rollout status deployment <deployment-name>

11. 扩大或缩小副本数量:

kubectl scale deployment <deployment-name> --replicas=3

12. 删除Deployment

kubectl delete deployment <deployment-name>


四. Service管理

service定义一种访问Pod的策略和抽象层,提供稳定的访问入口,实现服务发现与负载均衡;简单说service就是将pod端口暴露提供给其他pod或者外部访问。

1. 列出所有Services:

kubectl get service -o wide

#简写
kubectl get svc -o wide

2. 查看Service的详细信息:

kubectl describe service <service-name> -n <namespace>

3. 创建Service:

kubectl create service clusterip my-service --tcp=80:8080

4. 暴露Deployment为Service:

kubectl expose deployment <deployment-name> --type=LoadBalancer --port=80 --target-port=8080
#NodePort
kubectl expose deployment nginx --type=NodePort --port=8080

5. 编辑Service配置:

kubectl edit service <service-name> -n <namespace>

6. 更改Service类型:

kubectl patch service <service-name> -p '{"spec": {"type": "NodePort"}}'

7. 删除Service:

kubectl delete service <service-name> -n <namespace>


五. ConfigMap管理

用来存储配置数据,如应用的配置文件,以键值对形式挂载到Pod中,方便应用程序读取和分离配置与代码。

1. 创建ConfigMap:

kubectl create configmap <my-configmap> --from-literal=key1=value1
#简写
kubectl create cm <my-configmap> --from-literal=key1=value1

2. 查看ConfigMap

kubectl get configmaps
#查看详情
kubectl describe cm my-cm

3. 删除ConfigMap:

kubectl delete configmap <my-configmap>

六. PV/PVC管理

Persistent Volumes (PVs) 提供了持久化的存储资源,PV类型多种多样,支持不同的存储后端,如本地存储、网络存储(如NFS、Ceph等)。

1. 查看所有的PV:

kubectl get pv

2. 查看PV详细信息:

kubectl describe pv <pv-name>

3. 列出所有PVC:

kubectl get pvc

4. 查看PVC详细信息:

kubectl describe pvc <pvc-name>

由于pv和pvc都需要从yaml中创建,涉及到不同版本不同的yaml,因此这里将不再贴出yaml配置,后续的版本会单独一篇来讲解pv/pvc。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言