当前位置:   article > 正文

Kubernetes(K8S) 常用命令_kubectl top

kubectl top

k8s 常用命令

  1. # 查看API版本
  2. [root@k8smaster ~]# kubectl api-versions
  3. # 重启 K8S
  4. [root@k8smaster ~]# systemctl restart kubelet
  5. # 查看 kubelet 状态
  6. [root@k8smaster ~]# systemctl status kubelet
  7. # 重启 POD kubectl rollout restart deployment <deployment-name> -n <namespace>
  8. [root@k8smaster ~]# kubectl rollout restart deployment javademo1 -n default
  9. # 查看节点资源,需要安装metrics-server 【https://www.cnblogs.com/vipsoft/p/16896510.html】
  10. [root@k8smaster ~]# kubectl top node
  11. # 查看 Pod 在节点上的资源分配情况
  12. [root@k8smaster ~]# kubectl describe node
  13. # 查看 Pod 资源使用情况
  14. [root@k8smaster ~]# kubectl top pod -A
  15. # 查看 所有 secret
  16. [root@k8smaster ~]# kubectl get secret -A
  17. # 查看 secret 明细
  18. [root@k8smaster ~]# kubectl describe secret -A
  19. # 查看 node3的详情
  20. [root@k8smaster ~]# kubectl describe nodes k8snode3
  21. # 给node打标签
  22. [root@k8smaster ~]# kubectl label node k8snode1 env_role=dev
  23. # 查看 node 标签
  24. [root@k8smaster ~]# kubectl get nodes k8snode1 --show-labels
  25. # 创建命名空间
  26. [root@k8smaster ~]# kubectl create ns vipsoft-dev
  27. # 看所有Pod都在哪些节点上运行
  28. [root@k8smaster ~]# kubectl get pod -A -o yaml |grep '^ n'|grep -v nodeSelector|awk 'NR%3==1{print ++n"\n"$0;next}1'

创建 Deployment

  1. # 创建 POD
  2. [root@k8smaster ~]# kubectl create -f xx.yaml
  3. [root@k8smaster ~]# kubectl apply -f xx.yaml
  4. # 如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod
  5. 区别:
  6. kubectl create:
  7. (1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
  8. (2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。
  9. kubectl apply:
  10. kubectl apply 命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性
  11. # 删除 Pod nfs-nginx.yaml
  12. [root@k8smaster ~]# kubectl delete -f nfs-nginx.yaml

查看POD相关命令

  1. # 查看 pod 的日志 并 持续打印
  2. [root@k8smaster ~]# kubectl logs -f --tail=200 pods/podname -n namespace
  3. # 进到容器
  4. [root@k8smaster ~]# kubectl exec -it nginx-pvc-58b7bf955f-5clzg bash
  5. # 查看 K8S 配置
  6. [root@k8smaster ~]# cat $HOME/.kube/config
  7. # 查看 pods 情况
  8. [root@k8smaster ~]# kubectl get pods -n kube-system
  9. # 查看 nodes 情况
  10. [root@k8smaster ~]# kubectl get nodes
  11. # 删除 nodes
  12. [root@k8smaster ~]# kubectl drain centos-7-56 --delete-local-data --force --ignore-daemonsets node/centos-7-56 cordoned
  13. # 查看default 命名空间下的 pod 状态
  14. [root@k8smaster ~]# kubectl get pods
  15. # 查看所有命名空间下的 pod
  16. [root@k8smaster ~]# kubectl get pods -A
  17. # 查看 pod,排除 default 命名空间
  18. [root@k8smaster ~]# kubectl get pod -A |grep -v default
  19. # 查看所有 javademo1 的 pod 的详情
  20. [root@k8smaster ~]# kubectl describe pod javademo1
  21. # 对外暴露 80 端口
  22. [root@k8smaster ~]# kubectl expose deployment nginx --port=80 --type=NodePort
  23. [root@k8smaster ~]# kubectl get pod,svc
  24. NAME READY STATUS RESTARTS AGE
  25. pod/javademo1-d7856c75c-czv2g 1/1 Running 0 152m
  26. pod/javademo1-d7856c75c-n28rs 1/1 Running 0 151m
  27. pod/javademo1-d7856c75c-xzqjc 1/1 Running 0 151m
  28. pod/nginx-f89759699-5hkdw 1/1 Running 0 26d
  29. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  30. service/javademo1 NodePort 10.106.43.46 <none> 8111:31452/TCP 20d
  31. service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 26d
  32. service/nginx NodePort 10.103.87.81 <none> 80:30339/TCP 26d
  33. [root@k8smaster ~]# kubectl get pods -n ingress-nginx -o wide
  34. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  35. nginx-ingress-controller-5cb8688798-gspq4 1/1 Running 0 18h 10.244.2.39 k8snode2 <none> <none>
  36. [root@k8smaster ~]# kubectl describe svc javademo1
  37. Name: javademo1
  38. Namespace: default
  39. Labels: app=javademo1
  40. Annotations: <none>
  41. Selector: app=javademo1
  42. Type: NodePort
  43. IP: 10.106.43.46
  44. Port: <unset> 8111/TCP
  45. TargetPort: 8111/TCP
  46. NodePort: <unset> 31452/TCP
  47. Endpoints: 10.244.1.31:8111,10.244.1.32:8111,10.244.2.38:8111
  48. Session Affinity: None
  49. External Traffic Policy: Cluster
  50. Events: <none>
  51. [root@k8smaster ~]#
  52. # 查看创建的 Deployment 对象
  53. [root@k8smaster ~]# kubectl get deployments
  54. # 查看 Deployeement 详情
  55. [root@k8smaster ~]# kubectl describe deployment/javademo1
  56. # 查看 Deployment 上线状态
  57. [root@k8smaster ~]# kubectl rollout status deployment/javademo1
  58. # 查看 Deployment 对象创建的 ReplicaSet:
  59. [root@k8smaster ~]# kubectl get rs
  60. # 查看 Deployment 对象操作 ReplicaSet 创建的 Pod,并显示生成的标签:
  61. [root@k8smaster ~]# kubectl get pods --show-labels
  62. #查看当前运行的 Pod
  63. [root@k8smaster ~]# kubectl get pods
  64. # 查看当前证书到期时间
  65. [root@k8smaster ~]# kubeadm alpha certs check-expiration
  66. # 初次创建,生成 yaml 文件 --dry-run,减少编写量,避免出错
  67. [root@k8smaster ~]# kubectl create deployment javademo1 --image=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0.0 --dry-run -o yaml > javademo1.yaml
  68. # 已部署的,导出 yaml 文件
  69. [root@k8smaster ~]# kubectl get deployment javademo1 -o yaml > javademo2.yaml

升级

  1. # kubectl describe deployment/javademo1
  2. # 查看 Deployeement 详情 里可以看到 Containers 内容
  3. # Containers:
  4. # yuanjf:
  5. # Image: registry.cn-shanghai.aliyuncs.com/yuanjf/demo:1.0
  6. # 设置vipsoft容器中的镜像,镜像版本变了,就会触发重新拉取动作
  7. [root@k8smaster ~]# kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/yuanjf/demo:2.0
  8. deployment.apps/javademo1 image updated
  9. # 查看状态
  10. [root@k8smaster ~]# kubectl rollout status deployment/javademo1
  11. deployment "javademo1" successfully rolled out
  12. # 修改 yaml 文件,直接更新版本号
  13. [root@k8smaster ~]# kubectl edit deployment/javademo1

回滚

  1. # 查看 Deployment 部署历史, CHANGE-CAUSE 里没有值,需要在创建 Deployment 时,使用 --record 参数,就可以在 CHANGE-CAUSE 列看到每个版本使用的命令了
  2. [root@k8smaster ~]# kubectl rollout history deployment/javademo1
  3. # 查看版本 2 的信息:
  4. [root@k8smaster ~]# kubectl rollout history deployment/javademo1 --revision=2
  5. # 这边没加参加,回滚到上一个版本
  6. [root@k8smaster ~]# kubectl rollout undo deployment/javademo1
  7. # 加上参数,回滚到指定版本
  8. [root@k8smaster ~]# kubeetl rollout undo deployment/javademo1 --to-revision=2
  9. # 查看 Deployeement 详情
  10. [root@k8smaster ~]# kubectl describe deployment/javademo1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/671750
推荐阅读
相关标签
  

闽ICP备14008679号