您的位置:首页 > 汽车 > 时评 > Kubernetes-集群指令合集

Kubernetes-集群指令合集

2024/11/15 1:01:19 来源:https://blog.csdn.net/Lzcsfg/article/details/141169922  浏览:    关键词:Kubernetes-集群指令合集

目录

1. 集群状态相关的指令

2. Pod相关指令

3. 资源管理相关指令 

4. 名称空间相关指令

5. Deployment 管理

6. Service 管理

7. Ingress 管理(如有配置 Ingress)

8. 配置管理


1. 集群状态相关的指令

 

查看集群信息

kubectl cluster-info
# 该命令显示 Kubernetes 控制平面及相关服务的 URL 地址。

查看所有节点状态

kubectl get nodes
# 该命令显示集群中所有节点的状态,包括 Ready、NotReady 等。

查看节点详细信息

kubectl describe node <node-name>
# 该命令显示指定节点的详细信息,如资源使用情况、标签、污点等。

查看控制平面组件状态

kubectl get componentstatuses
# 该命令显示 etcd、scheduler、controller-manager 等控制平面组件的健康状态。

查看节点的资源使用情况

kubectl top nodes
# 该命令显示每个节点的 CPU 和内存使用情况。

查看 Pod 的资源使用情况

kubectl top pods -n <namespace>

查看集群事件

kubectl get events -A
# 该命令显示集群中的事件日志,可以帮助诊断问题

查看当前上下文和配置

kubectl config view
# 该命令显示当前 kubectl 配置文件的内容,包括上下文、集群和用户信息。

设置集群上下文 

kubectl config use-context <context-name>

检查 DNS 服务是否正常

kubectl run --rm -i --tty busybox --image=busybox --restart=Never -- nslookup kubernetes.default
# 该命令启动一个临时的 Pod 并测试 DNS 解析是否正常。

2. Pod相关指令

Pod 是最小的部署单元


查看所有命名空间中的 Pod

kubectl get pods -A

查看当前命名空间中的 Pod

kubectl get pods

查看指定命名空间中的 Pod

kubectl get pods -n <namespace>

查看 Pod 的详细信息

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

通过 YAML 文件创建 Pod

kubectl apply -f <pod.yaml>

删除 Pod

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

强制删除 Pod

kubectl delete pod <pod-name> --grace-period=0 --force -n <namespace>
# 该命令会立即删除 Pod,而不等待其优雅终止。

查看 Pod 日志

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

查看特定容器的日志

kubectl logs <pod-name> -c <container-name> -n <namespace>

查看 Pod 的事件日志

kubectl describe pod <pod-name> -n <namespace>
# 这个命令的输出中会包含与 Pod 相关的事件,如创建、调度失败、容器重启等信息

进入 Pod 内部执行命令

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

查看 Pod 的资源使用情况

kubectl top pod <pod-name> -n <namespace>
# 该命令显示 Pod 的 CPU 和内存使用情况

列出 Pod 的 IP 地址

kubectl get pods -o wide -n <namespace>
# 该命令显示 Pod 的详细信息,包括 IP 地址、节点名称等

查看 Pod 的所有者

kubectl get pods <pod-name> -n <namespace> -o jsonpath='{.metadata.ownerReferences[0].name}'

3. 资源管理相关指令 

 

查看资源(Pod、Deployment、Service 等)

kubectl get <resource> -n <namespace>

创建资源

kubectl apply -f <resource.yaml>
# 通过 YAML 文件创建资源。

删除资源

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

更新资源

kubectl apply -f <resource.yaml>
# 使用更新后的 YAML 文件重新应用配置。

查看资源详细信息

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

列出所有资源类型

kubectl api-resources

4. 名称空间相关指令

在 Kubernetes 中,名称空间(Namespace)用于在同一个物理集群中划分逻辑分区,以便在不同的环境中隔离资源。 

列出所有名称空间

kubectl get namespaces
# 显示集群中的所有名称空间及其状态

查看名称空间详细信息

kubectl describe namespace <namespace-name>
# 显示指定名称空间的详细信息,包括资源配额、限制等

创建新名称空间

kubectl create namespace <namespace-name>

通过 YAML 文件创建名称空间 

创建一个名为 namespace.yaml 的文件

apiVersion: v1
kind: Namespace
metadata:name: my-namespace

然后执行:

kubectl apply -f namespace.yaml

删除名称空间

kubectl delete namespace <namespace-name>
# 注意:删除名称空间会删除该名称空间内的所有资源。

设置当前上下文的默认名称空间】

kubectl config set-context --current --namespace=<namespace-name>
# 该命令将当前上下文中的默认名称空间设置为指定的名称空间。

查看特定名称空间中的资源

kubectl get <resource> -n <namespace>

在特定名称空间中创建资源

kubectl create -f <resource.yaml> -n <namespace>

删除特定名称空间中的资源

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

5. Deployment 管理

 

查看所有 Deployment

kubectl get deployments -n <namespace>

查看特定 Deployment 的详细信息

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

创建或更新 Deployment

kubectl apply -f <deployment.yaml>
# 通过 YAML 文件创建或更新 Deployment。

删除 Deployment

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

扩展 Deployment(调整副本数量)

kubectl scale deployment <deployment-name> --replicas=<number> -n <namespace>

滚动更新 Deployment

kubectl rollout restart deployment <deployment-name> -n <namespace>

回滚 Deployment

kubectl rollout undo deployment <deployment-name> -n <namespace>
# 将 Deployment 回滚到上一个版本

查看 Deployment 的滚动更新状态

kubectl rollout status deployment <deployment-name> -n <namespace>
# 检查 Deployment 的更新进度和状态

6. Service 管理

查看所有 Service

kubectl get services -n <namespace>

查看特定 Service 的详细信息

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

创建 Service

kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=<type> -n <namespace>
  • --port 指定 Service 暴露的端口。
  • --target-port 指定 Pod 内部容器的端口。
  • --type 指定 Service 类型,例如 ClusterIPNodePortLoadBalancer

删除 Service

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

7. Ingress 管理(如有配置 Ingress)

查看所有 Ingress 资源

kubectl get ingress -n <namespace>

查看特定 Ingress 的详细信息

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

创建或更新 Ingress

kubectl apply -f <ingress.yaml>

删除 Ingress

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

 

8. 配置管理

创建 ConfigMap

kubectl create configmap <configmap-name> --from-literal=<key>=<value> -n <namespace>

或者从文件创建

kubectl create configmap <configmap-name> --from-file=<file-path> -n <namespace>

查看 ConfigMap

kubectl get configmaps -n <namespace>

查看 ConfigMap 详细信息

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

删除 ConfigMap

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

创建 Secret

kubectl create secret generic <secret-name> --from-literal=<key>=<value> -n <namespace>

或者从文件创建

kubectl create secret generic <secret-name> --from-file=<file-path> -n <namespace>

查看 Secret

kubectl get secrets -n <namespace>

查看 Secret 详细信息

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

删除 Secret

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com