- 👏作者简介:大家好,我是冰点,从业11年,目前在物流独角兽企业从事技术方面工作,
集群信息的各种查看基本上是在Master节点操作
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 集群的信息,你可以使用以下命令:
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
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
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
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
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 集群信息的命令,通过这些命令,你可以快速了解集群的状态和组成。