Kubernetes管理应用程序、服务常用命令、集群监视
1、如何使用Kubernetes管理应用程序
1.1 查看集群信息:
kubectl cluster-info: 显示集群信息。
kubectl config view: 显示当前kubectl配置信息。
1.2 查看资源状态:
kubectl get pods: 查看所有Pod的状态。 kubectl get deployments: 查看所有部署的状态。 kubectl get services: 查看所有服务的状态。 kubectl get nodes: 查看所有节点的状态。 kubectl get namespaces: 查看所有命名空间的状态。 kubectl describe pod <pod-name>: 显示特定Pod的详细信息。
1.3 创建和管理资源:
kubectl create -f <filename>: 根据YAML文件创建资源。 kubectl apply -f <filename>: 根据YAML文件创建或更新资源。 kubectl delete -f <filename>: 根据YAML文件删除资源。 kubectl scale deployment <deployment-name> --replicas=<replica-count>: 扩展或缩减部署的副本数。 kubectl expose deployment <deployment-name> --port=<port> --type=<service-type>: 创建一个服务来公开部署。
1.4执行操作:
kubectl exec -it <pod-name> -- <command>: 在Pod中执行特定命令。 kubectl logs <pod-name>: 查看Pod的日志。 kubectl port-forward <pod-name> <local-port>:<pod-port>: 将本地端口与Pod的端口进行转发。
1.5 升级和回滚:
kubectl set image deployment/<deployment-name> <container-name>=<new-image>: 更新部署的容器镜像。 kubectl rollout status deployment/<deployment-name>: 检查部署的滚动更新状态。 kubectl rollout undo deployment/<deployment-name>: 回滚部署到先前版本。
1.6 删除资源:
kubectl delete deployment <deployment-name>: 删除部署。 kubectl delete pod <pod-name>: 删除Pod。 kubectl delete service <service-name>: 删除服务。
2、Kubernetes服务常用命令:
2.1 查看服务状态:
kubectl get services: 查看所有服务的状态。 kubectl describe service <service-name>: 显示特定服务的详细信息。
2.2 创建和管理服务:
kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=<service-type>: 创建一个服务来公开部署,并指定端口和类型。 kubectl create service <service-type> <service-name> --tcp=<port>:<target-port>: 创建一个服务并将其绑定到指定的端口和目标端口。 kubectl edit service <service-name>: 编辑服务的配置。
2.3 负载均衡和端口转发:
kubectl port-forward <pod-name> <local-port>:<pod-port>: 将本地端口与Pod的端口进行转发。
kubectl expose deployment <deployment-name> --port=<port> --target-port=<target-port> --type=LoadBalancer: 创建一个负载均衡服务,并将外部流量分发到部署的Pod。
2.4 查看负载均衡器IP:
kubectl get services: 查找负载均衡服务的External IP(在云环境中)或者LoadBalancer Ingress(在本地环境中)。
2.5 删除服务:
kubectl delete service <service-name>: 删除服务。
3、监视Kubernetes集群:
3.1 查看资源状态:
kubectl get pods: 查看所有Pod的状态。 kubectl get deployments: 查看所有部署的状态。 kubectl get services: 查看所有服务的状态。 kubectl get nodes: 查看所有节点的状态。 kubectl get namespaces: 查看所有命名空间的状态。
3.2 监视资源:
kubectl describe pod <pod-name>: 显示特定Pod的详细信息。 kubectl describe deployment <deployment-name>: 显示特定部署的详细信息。 kubectl describe service <service-name>: 显示特定服务的详细信息。 kubectl describe node <node-name>: 显示特定节点的详细信息。
3.3 实时日志:
kubectl logs <pod-name>: 查看Pod的日志。 kubectl logs -f <pod-name>: 实时查看Pod的日志。 kubectl logs -f -l <label-selector>: 根据标签选择器实时查看多个Pod的日志。
3.4 集群事件:
kubectl get events: 查看集群中的事件。 kubectl describe event <event-name>: 显示特定事件的详细信息。
3.5 资源使用情况
kubectl top pods: 查看Pod的资源使用情况。
kubectl top nodes: 查看节点的资源使用情况。
3.6 监视滚动更新:
kubectl rollout status deployment/<deployment-name>: 检查部署的滚动更新状态。
kubectl rollout history deployment/<deployment-name>: 查看部署的更新历史记录。
3.7 扩展和缩减副本数:
kubectl scale deployment <deployment-name> --replicas=<replica-count>: 扩展或缩减部署的副本数。