• 👏作者简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术方面工作,

集群信息的各种查看基本上是在Master节点操作

k8s的node节点上docker ps查询不到 k8s查看node详细状态_运维

1.基本命令

1.1、查看 Node状态

kubectl get nodes
 kubectl get node IP //节点IP可以用空格隔开写多个

1.2、查看 Service 信息

kubectl get service

1.3、查看所有名称空间内资源

kubectl get pods --all-namespaces
或者
 kubectl get pods -A

1.4、同时查看多种资源信息

kubectl get pod,svc -n kube-system

1.5、查看 API 对象细节

使用 kubectl describe 命令,查看一个 API 对象的细节:

kubectl describe node IP

 kubectl delete node IP

1.6、查看集群信息

kubectl cluster-info
Kubernetes master is running at http://localhost:8080

1.7、查看各组件信息

使用安全连接:
 kubectl -s https://URL get componentstatuses
未使用安全连接
 kubectl -s http://URL  get componentstatuses

1.8、查看资源类型所对应的Apiversion

kubectl explain pod

1.9、查看帮助

kubectl explain deployment
 kubectl explain deployment.spec
 kubectl explain deployment.spec.replicas

2. K8S常用命令40条

1. kubectl version:查看 k8s 版本信息。
2. kubectl cluster-info:查看 k8s 集群信息,包括 API Server 的地址和版本以及控制平面组件的状态。
3. kubectl get nodes:查看集群中的节点信息,包括节点名称、IP 地址、状态和运行时间等。
4. kubectl get pods:查看当前命名空间下的 Pod 信息,包括 Pod 名称、所属节点、容器状态、IP 地址等。
5. kubectl get services:查看当前命名空间下的 Service 信息,包括 Service 名称、类型、所属端口、IP 地址等。
6. kubectl get deployments:查看当前命名空间下的 Deployment 信息,包括 Deployment 名称、所属 Pod、所属 ReplicaSet 等。
7. kubectl get configmaps:查看当前命名空间下的 ConfigMap 信息,包括 ConfigMap 名称、数据信息等。
8. kubectl get secrets:查看当前命名空间下的 Secret 信息,包括 Secret 名称、数据信息等。
9. kubectl describe:查看资源的详细信息,包括资源的属性、状态、事件等。
10. kubectl logs:查看 Pod 和容器的日志信息。
11. kubectl apply:应用 YAML 文件中定义的资源配置。
12. kubectl delete:删除指定的资源或资源集合。
13. kubectl exec:在 Pod 中的容器中执行命令。
14. kubectl port-forward:将本地端口转发到 Pod 中的容器中。
15. kubectl rollout:管理 Deployment 的滚动升级操作。
16. kubectl scale:扩展或缩小 Deployment 的副本数。
17. kubectl label:给指定资源添加标签,可以方便地对资源进行分类和筛选。
18. kubectl annotate:给指定资源添加注释信息,可以记录一些描述性的信息。
19. kubectl rollout history:查看 Deployment 的升级历史记录。
20. kubectl rollout undo:撤销 Deployment 的升级操作,可以回滚到之前的版本。
21. kubectl top:查看集群中资源的 CPU 和内存使用情况。
22. kubectl exec -ti:在 Pod 中的容器中打开交互式终端。
23. kubectl logs -f:实时查看 Pod 和容器的日志信息。
24. kubectl proxy:启动本地代理,可以通过代理访问 k8s 集群中的 API。
25. kubectl rollout pause:暂停 Deployment 的升级操作。
26. kubectl rollout resume:恢复 Deployment 的升级操作。
27. kubectl attach:连接到 Pod 中的容器,可以查看容器的标准输出和错误输出。
28. kubectl rollout status:查看 Deployment 的滚动升级状态。
29. kubectl rollout restart:重启 Deployment 中的所有 Pod。
30. kubectl drain:将节点设置为维护模式,可以避免节点上的 Pod 被删除。
31. kubectl uncordon:将节点设置为可调度状态,可以重新调度 Pod 到该节点上。
32. kubectl get ingresses:查看当前命名空间下的 Ingress 资源。
33. kubectl get namespaces:查看集群中所有命名空间的信息。
34. kubectl get nodes -o wide:查看节点的详细信息,包括节点的 IP 地址、标签、状态等。
35. kubectl get pods -o wide:查看 Pod 的详细信息,包括 Pod 所在节点的 IP 地址、容器的 IP 地址、容器状态等。
36. kubectl get services -o wide:查看 Service 的详细信息,包括 Service 的类型、IP 地址、端口号、所属节点等。
37. kubectl get deployments -o wide:查看 Deployment 的详细信息,包括副本数、所属节点、更新策略等。
38. kubectl rollout history deployment/ --revision=:查看指定 Deployment 的某个版本的升级历史。
39. kubectl rollout undo deployment/ --to-revision=:回滚指定 Deployment 到某个版本。
40. kubectl explain:查看 k8s API 对象的详细定义信息。

3.命令实操

好的,以下是每个命令的执行示例和响应示例:

3.1. kubectl version

执行示例:

kubectl version

响应示例:

Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b52b3f4a9d2f1a9dfffdaa49fcaa89ec6e33c4", GitTreeState:"clean", BuildDate:"2021-08-04T09:01:25Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b52b3f4a9d2f1a9dfffdaa49fcaa89ec6e33c4", GitTreeState:"clean", BuildDate:"2021-08-04T08:59:53Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}

3.2. kubectl cluster-info

执行示例:

kubectl cluster-info

响应示例:

Kubernetes master is running at https://192.168.99.100:8443
KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

3.3. kubectl get nodes

执行示例:

kubectl get nodes

响应示例:

NAME       STATUS   ROLES    AGE   VERSION
minikube   Ready    <none>   12d   v1.22.2

3.4. kubectl get pods

执行示例:

kubectl get pods

响应示例:

NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-5d6b7cb8c4-7s2j4   1/1     Running   0          12d
nginx-deployment-5d6b7cb8c4-bm9q9   1/1     Running   0          12d
nginx-deployment-5d6b7cb8c4-lr6c4   1/1     Running   0          12d

3.5. kubectl get services

执行示例:

kubectl get services

响应示例:

NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.96.0.1       <none>        443/TCP        12d
nginx-service   NodePort    10.98.121.103   <none>        80:30080/TCP   12d

3.6. kubectl get deployments

执行示例:

kubectl get deployments

响应示例:

NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3/3     3            3           12d

3.7. kubectl get configmaps

执行示例:

kubectl get configmaps

响应示例:

NAME           DATA   AGE
nginx-config   1      12d

3.8. kubectl get secrets

执行示例:

kubectl get secrets

响应示例:

NAME                  TYPE                                  DATA   AGE
default-token-w8t6h   kubernetes.io/service-account-token   3      12d

3.9. kubectl describe

执行示例:

kubectl describe pods nginx-deployment-5d6b7cb8c4-7s2j4

响应示例:

Name:         nginx-deployment-5d6b7cb8c4-7s2j4
Namespace:    default
Priority:     0
Node:         minikube/192.168.99.101
Start Time:   Sat, 29 May 2021 10:39:59 +0800
...

3.10. kubectl logs

执行示例:

kubectl logs nginx-deployment-5d6b7cb8c4-7s2j4

响应示例:

127.0.0.1 - - [29/May/2021:10:40:31 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.6411. kubectl apply

3.11 kubectl apply

执行示例:

kubectl apply -f nginx-deployment.yaml

响应示例:

deployment.apps/nginx-deployment created

3.12. kubectl delete

执行示例:

kubectl delete deployment nginx-deployment

响应示例:

deployment.apps "nginx-deployment" deleted

3.13. kubectl exec

执行示例:

kubectl exec -it nginx-deployment-5d6b7cb8c4-7s2j4 -- /bin/bash

响应示例:

root@nginx-deployment-5d6b7cb8c4-7s2j4:/#

3.14. kubectl port-forward

执行示例:

kubectl port-forward nginx-deployment-5d6b7cb8c4-7s2j4 8080:80

响应示例:

Forwarding from 127.0.0.1:8080 -> 80
Forwarding from [::1]:8080 -> 80

3.15. kubectl rollout

执行示例:

kubectl rollout status deployment/nginx-deployment

响应示例:

deployment "nginx-deployment" successfully rolled out

3.16. kubectl scale

执行示例:

kubectl scale deployment nginx-deployment --replicas=5

响应示例:

deployment.apps/nginx-deployment scaled

3.17. kubectl label

执行示例:

kubectl label pod nginx-deployment-5d6b7cb8c4-7s2j4 app=nginx

响应示例:

pod/nginx-deployment-5d6b7cb8c4-7s2j4 labeled

3.18. kubectl annotate

执行示例:

kubectl annotate pod nginx-deployment-5d6b7cb8c4-7s2j4 description="This pod is used for testing"

响应示例:

pod/nginx-deployment-5d6b7cb8c4-7s2j4 annotated

3.19. kubectl rollout history

执行示例:

kubectl rollout history deployment/nginx-deployment

响应示例:

deployment.apps/nginx-deployment
REVISION  CHANGE-CAUSE
1         <none>
2         kubectl apply --filename=nginx-deployment.yaml --record=true

3.20. kubectl rollout undo

执行示例:

kubectl rollout undo deployment/nginx-deployment --to-revision=1

响应示例:

deployment.apps/nginx-deployment rolled back

3.21. kubectl top

执行示例:

kubectl top pods

响应示例:

NAME                                CPU(cores)   MEMORY(bytes)
nginx-deployment-5d6b7cb8c4-7s2j4   1m           8Mi
nginx-deployment-5d6b7cb8c4-bm9q9   1m           8Mi
nginx-deployment-5d6b7cb8c4-lr6c4   1m           7Mi

3.22. kubectl exec -ti

执行示例:

kubectl exec -ti nginx-deployment-5d6b7cb8c4-7s2j4 -- /bin/bash

响应示例:

root@nginx-deployment-5d6b7cb8c4-7s2j4:/#

3.23. kubectl logs -f

执行示例:

kubectl logs -f nginx-deployment-5d6b7cb8c4-7s2j4

响应示例:

127.0.0.1 - - [29/May/2021:10:40:31 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.64
127.0.0.1 - - [29/May/2021:10:40:41 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.64

3.24. kubectl proxy

执行示例:

kubectl proxy

响应示例:

Starting to serve on 127.0.0.1:8001

3.25. kubectl rollout pause

执行示例:

kubectl rollout pause deployment/nginx-deployment

响应示例:

deployment.apps/nginx-deployment paused

3.26. kubectl rollout resume

执行示例:

kubectl rollout resume deployment/nginx-deployment

响应示例:

deployment.apps/nginx-deployment resumed

3.27. kubectl create

执行示例:

kubectl create deployment nginx-deployment --image=nginx:latest --replicas=3

响应示例:

deployment.apps/nginx-deployment created

3.28. kubectl edit

执行示例:

kubectl edit deployment nginx-deployment

响应示例:

deployment.apps/nginx-deployment edited

3.29. kubectl apply

执行示例:

kubectl apply -f nginx-deployment.yaml

响应示例:

deployment.apps/nginx-deployment created

3.30. kubectl rollout restart

执行示例:

kubectl rollout restart deployment/nginx-deployment

响应示例:

deployment.apps/nginx-deployment restarted

要查看 Kubernetes 集群的信息,你可以使用以下命令:

  1. kubectl cluster-info: 查看集群信息,包括 API Server 的地址和端口、DNS 服务的 IP 地址等。
    示例:
$ kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:6443

KubeDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  1. kubectl get nodes: 查看集群中的节点信息,包括节点名称、状态、IP 地址等。
    示例:
$ kubectl get nodes
NAME         STATUS   ROLES                  AGE    VERSION
node-1       Ready    control-plane,master   5d3h   v1.22.1
node-2       Ready    <none>                 5d3h   v1.22.1
node-3       Ready    <none>                 5d3h   v1.22.1
  1. kubectl get pods --all-namespaces: 查看集群中所有命名空间下的 Pod 信息,包括 Pod 名称、所属命名空间、状态等。
    示例:
$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                             READY   STATUS    RESTARTS   AGE
kube-system   coredns-558bd4d5db-gm5tv                          1/1     Running   0          5d3h
kube-system   coredns-558bd4d5db-lz5nx                          1/1     Running   0          5d3h
kube-system   etcd-node-1                                      1/1     Running   0          5d3h
kube-system   kube-apiserver-node-1                            1/1     Running   0          5d3h
kube-system   kube-controller-manager-node-1                   1/1     Running   0          5d3h
kube-system   kube-flannel-ds-amd64-7k9d5                       1/1     Running   0          5d3h
kube-system   kube-flannel-ds-amd64-rkq9r                       1/1     Running   0          5d3h
kube-system   kube-flannel-ds-amd64-w8l57                       1/1     Running   0          5d3h
kube-system   kube-proxy-4ph2h                                  1/1     Running   0          5d3h
kube-system   kube-proxy-7p7r5                                  1/1     Running   0          5d3h
kube-system   kube-proxy-tj4h5                                  1/1     Running   0          5d3h
kube-system   kube-scheduler-node-1                             1/1     Running   0          5d3h
  1. kubectl get deployments --all-namespaces: 查看集群中所有命名空间下的 Deployment 信息,包括 Deployment 名称、所属命名空间、副本数等。
    示例:
$ kubectl get deployments --all-namespaces
NAMESPACE     NAME       READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   coredns    2/2     2            2           5d3h
  1. kubectl get services --all-namespaces: 查看集群中所有命名空间下的 Service 信息,包括 Service 名称、所属命名空间、类型、端口等。
    示例:
$ kubectl get services --all-namespaces
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP         5d3h
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP   5d3h

以上是一些常用的用于查看 Kubernetes 集群信息的命令,通过这些命令,你可以快速了解集群的状态和组成。