Kubernetes
集群信息查看
查看集群信息:显示集群的基本信息,如集群版本、API 服务器地址等。
kubectl cluster-info
查看节点信息:展示集群中所有节点的详细信息,包括节点名称、状态、角色、版本等。
kubectl get nodes
查看组件状态:可查看控制平面组件(如 API Server、Controller Manager、Scheduler 等)的健康状态。
kubectl get componentstatuses
资源操作
Pod 相关
查看 Pod:列出指定命名空间下的所有 Pod 及其状态。
kubectl get pods -n <namespace>
如果不指定 -n 参数,默认查看 default 命名空间。
创建 Pod:根据 YAML 文件创建 Pod。
kubectl apply -f pod.yaml
pod.yaml 是定义 Pod 的 YAML 配置文件。
删除 Pod:删除指定名称的 Pod。
kubectl delete pod <pod-name> -n <namespace>
查看 Pod 详细信息:获取指定 Pod 的详细描述,包含容器信息、状态、事件等。
kubectl describe pod <pod-name> -n <namespace>
进入 Pod 容器:在 Pod 中运行指定命令,常用来进入容器的 shell 环境。
kubectl exec -it <pod-name> -n <namespace> -- /bin/bash
Deployment 相关
查看 Deployment:列出指定命名空间下的所有 Deployment。
kubectl get deployments -n <namespace>
创建 Deployment:依据 YAML 文件创建 Deployment。
kubectl apply -f deployment.yaml
删除 Deployment:删除指定名称的 Deployment。
kubectl delete deployment <deployment-name> -n <namespace>
扩缩容 Deployment:调整 Deployment 的副本数量。
kubectl scale deployment <deployment-name> --replicas=<number> -n <namespace>
Service 相关
查看 Service:显示指定命名空间下的所有 Service。
kubectl get services -n <namespace>
创建 Service:根据 YAML 文件创建 Service。
kubectl apply -f service.yaml
删除 Service:删除指定名称的 Service。
kubectl delete service <service-name> -n <namespace>
Namespace 相关
查看 Namespace:列出所有的命名空间。
kubectl get namespaces
创建 Namespace:创建一个新的命名空间。
kubectl create namespace <namespace-name>
删除 Namespace:删除指定名称的命名空间及其下的所有资源。
kubectl delete namespace <namespace-name>
调试与监控
查看 Pod 日志:获取指定 Pod 中容器的日志。
kubectl logs <pod-name> -n <namespace>
如果 Pod 中有多个容器,可使用 -c 参数指定容器名称。
kubectl logs <pod-name> -c <container-name> -n <namespace>
端口转发:将本地端口映射到 Pod 内部的端口,方便调试。
kubectl port-forward <pod-name> <local-port>:<pod-port> -n <namespace>
查看资源使用情况:需要安装 Metrics Server 才能使用,可查看 Pod 和节点的资源使用情况。
kubectl top pods -n <namespace>
kubectl top nodes
配置管理
查看 ConfigMap:列出指定命名空间下的所有 ConfigMap。
kubectl get configmaps -n <namespace>
创建 ConfigMap:从文件或直接指定键值对创建 ConfigMap。
kubectl create configmap <configmap-name> --from-file=path/to/file -n <namespace>
查看 Secret:列出指定命名空间下的所有 Secret。
kubectl get secrets -n <namespace>
创建 Secret:创建一个包含用户名和密码的 Secret。
kubectl create secret generic <secret-name> --from-literal=username=admin --from-literal=password=123456 -n <namespace>