当前位置:首页 >探索 >使用 Lens Desktop 监控和调试 Kubernetes Lens Desktop 是使用免费的

使用 Lens Desktop 监控和调试 Kubernetes Lens Desktop 是使用免费的

2024-06-30 21:50:21 [百科] 来源:避面尹邢网

使用 Lens Desktop 监控和调试 Kubernetes

作者:Mitesh Soni 系统 Lens Desktop 是使用一个令人兴奋的 Kubernetes 工作平台。它是控和基于 OpenLens 资源库的一个定制化发行版本。通过本文来了解下 Lens Desktop 能做什么以及它是调试如何工作的。

Lens Desktop 是使用免费的。你可以查看 https://app.k8slens.dev/subscribe 来了解更多内容。控和Lens Desktop 有如下优势:

使用 Lens Desktop 监控和调试 Kubernetes Lens Desktop 是使用免费的

  • 简单高效 —— 你无需学习 kubectl 命令
  • 可视化已有的 Kubernetes 资源
  • 基于开源代码构建
  • 可观测性 —— 实时的统计数据、事件和日志流
  • 错误和警告可以直接在 Lens 仪表盘上看到
  • 支持 EKS、使用AKS、控和GKE、调试Minikube、使用Rancher、控和k0s、调试k3s、使用OpenShift
  • 强大的控和社区支持 —— 有 450000 用户,在 GitHub 上共获得 17000 星

Minikube 安装

Minikube 是调试一个用于本地运行 Kubernetes 的工具。它运行一个单节点的 Kubernetes 集群,这样就可以在 Kubernetes 上进行日常软件开发的实践工作。

使用 Lens Desktop 监控和调试 Kubernetes Lens Desktop 是使用免费的

我们将使用 Minikube 并验证 Lens 的用法。首先让我们在基于 Windows 的系统上安装 Minikube。你也可以把它安装在其他操作系统、虚拟机或笔记本电脑上。

使用 Lens Desktop 监控和调试 Kubernetes Lens Desktop 是使用免费的

  • 2 核以上 CPU
  • 2GB RAM
  • 20GB 空闲硬盘空间
  • 能连接网络
  • 容器或虚拟机管理器,如 Docker、VirtualBox

在终端或命令提示符处,运行 minikube start 命令:

minikube start --driver=virtualbox* minikube v1.12.3 on Microsoft Windows 10 Home Single Language 10.0.19044 Build 19044* Using the virtualbox driver based on existing profile* minikube 1.26.0 is available! Download it: https://github.com/kubernetes/minikube/releases/tag/v1.26.0* To disable this notice, run: ‘minikube config set WantUpdateNotification false’* Starting control plane node minikube in cluster minikube* virtualbox “minikube” VM is missing, will recreate.* Creating virtualbox VM (CPUs=2, Memory=3000MB, Disk=20000MB) ...! This VM is having trouble accessing https://k8s.gcr.io* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/* Preparing Kubernetes v1.18.3 on Docker 19.03.12 ...* Verifying Kubernetes components...* Enabled addons: default-storageclass, storage-provisioner* Done! kubectl is now configured to use “minikube”

进入你的 VirtualBox,并验证刚安装的 Minikube 虚拟机功能正常(图 1)。

Figure 1: Minikube virtual machine in virtual box

Figure 1: Minikube virtual machine in virtual box

使用 minikube status 命令,查看状态是否与下面的输出一致:

C:\>minikube statusminikubetype: Control Planehost: Runningkubelet: Runningapiserver: Runningkubeconfig: Configured

然后,使用 kubectl cluster-info 命令查看 KubeDNS 详情:

kubectl cluster-infoKubernetes master is running at https://192.168.99.103:8443KubeDNS is running at https://192.168.99.103:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

你可以使用 kubectl cluster-info dump 命令来调试和诊断集群问题。

当 Minikube 安装完成后,安装 kubectl(https://kubernetes.io/docs/tasks/tools/)。它是一个命令行集群,用于对 Kubernetes 集群和 Minikube 执行命令。

Figure 2: Lens

Figure 2: Lens

执行 kubectl get nodes 命令获取所有 节点node

C:\>kubectl get nodesNAME       STATUS   ROLES    AGE     VERSIONminikube   Ready    master   7m57s   v1.18.3

使用 kubectl get all 命令获取默认命名空间下的所有详情:

C:\>kubectl get allNAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGEservice/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   7m58s

我们现在已经有一个 Minikube 集群,并准备好了 Kubectl。下一步是安装和配置 Lens,并用示例应用程序来验证。

Lens 的安装和配置

打开 https://k8slens.dev/ ,下载与你的操作系统匹配的安装包。

然后,参照屏幕上的教程来安装 Lens,安装完成后打开 Lens。你会发现在目录中有一个 minikube(图 3)。

Figure 3: Lens catalogue

Figure 3: Lens catalogue

点击 “minikube” 后,你就进入了 Minikube 的世界,你会爱上它的。

点击 节点node 获取有关 kubectl get nodes 命令输出的 节点node

现在,你可以使用 Lens 了。

Figure 4: Lens cluster

Figure 4: Lens cluster

我们现在部署 https://github.com/GoogleCloudPlatform/microservices-demo,这是一个云原生微服务演示应用程序。它有 11 层的微服务应用,是一个基于网络的电子商务应用。

下载这个应用程序,把它解压到与 Minikube 相同的目录。

进入 release 目录,执行以下命令。

kubectl apply -f kubernetes-manifests.yamldeployment.apps/emailservice createdservice/emailservice createddeployment.apps/checkoutservice createdservice/checkoutservice createddeployment.apps/recommendationservice createdservice/recommendationservice createddeployment.apps/frontend createdservice/frontend createdservice/frontend-external createddeployment.apps/paymentservice createdservice/paymentservice createddeployment.apps/productcatalogservice createdservice/productcatalogservice createddeployment.apps/cartservice createdservice/cartservice createddeployment.apps/loadgenerator createddeployment.apps/currencyservice createdservice/currencyservice createddeployment.apps/shippingservice createdservice/shippingservice createddeployment.apps/redis-cart createdservice/redis-cart createddeployment.apps/adservice createdservice/adservice created

安装过程现在应该已经开始了,不过它需要一些时间来反映出我们使用了 kubectl 命令。

Figure 5: Lens nodes

Figure 5: Lens nodes

kubectl get podsNAME                 READY   STATUS    RESTARTS   AGEadservice-775d8b9bf5-cp7jr   0/1     Pending   0          8hcartservice-79749895f5-jrq4d  1/1     Running   0         8hcheckoutservice-5645bf9c65-882m4  1/1   Running  0        8hcurrencyservice-545c79d477-8rhg7  1/1  Running   0         8hemailservice-7cc5c74b4f-hk74s     1/1  Running   0        8hfrontend-9cdf787f5-klfkh    1/1     Running   1          8hloadgenerator-7b6874cb4c-645v9   1/1  Running   0        8hpaymentservice-5f74bc7b87-l4248  1/1  Running   0        8hproductcatalogservice-6846f59899-v4q4w  1/1  Running  0  8hrecommendationservice-d9c6c8b55-m2x9k  1/1  Running   0  8hredis-cart-57bd646894-v7kfr    0/1   Pending   0         8hshippingservice-8685dd9855-pmgjm  1/1  Running  0        8h

表 1 列出了你可以通过 kubectl 来获取信息的几个命令。

Figure 6: Lens pods

Figure 6: Lens pods

描述

命令

列出节点

kubectl get node

列出集群中的所有资源

kubectl get all –all-namespaces

列出部署

kubectl get deployment

显示部署的完整状态

kubectl describe deployment <deployment_name>

修改集群上的部署

kubectl edit deployment <deployment_name>

删除部署

kubectl delete deployment <deployment_name>

列出容器荚

kubectl get pod

删除容器荚

kubectl delete pod <pod_name>

显示容器荚的完整状态

kubectl describe pod <pod_name>

在 Shell 中运行一个单容器荚

kubectl exec -it <pod_name> /bin/bash

列出机密信息

kubectl get secrets

列出服务

kubectl get services

列出服务的完整状态

kubectl describe services

修改集群中的服务

kubectl edit services / kubectl edit deployment <deployment_name>

列出命名空间

kubectl get namespace <namespace_name>

打印容器荚日志

kubectl logs <pod_name>

打印容器荚中特定容器的日志

kubectl logs -c <container_name> <pod_name>

Lens 不仅可以帮你获取表 1 中列出的所有信息,它还可以获取指定集群的信息。我们还能用 Lens 来对 Kubernetes 资源进行编辑和删除操作。

Figure 7: Lens deployments

Figure 7: Lens deployments

我们来看下是如何操作的。在 工作负载Workloads 部分选择 容器荚Pod(图 6),我们能通过 Lens 来编辑、删除、查看日志、访问 容器荚Pod

Figure 8: Lens Replicasets

Figure 8: Lens Replicasets

你可以验证 工作负载Workloads 区域中所有 部署deployments(图 7),工作负载Workloads 区域中所有 副本Replicasets (图 8),配置Config 区域中所有 密钥Secrets (图 9),以及 网络Network 区域中所有 服务Services

Figure 9: Lens Secrets

Figure 9: Lens Secrets

你可以看到,跳转到所有的资源以及在一个地方高效地查看所有资源就是如此轻松。我们可以用 Lens 修改 YAML 文件,在运行时应用它来查看变更。

Figure 10: Lens Services

Figure 10: Lens Services

对于配置在不同的云服务商部署的多个集群,我们仍可以用 Lens 来进行观察和故障处理。

(题图:MJ/069da8c5-9043-46b3-9b14-87a0ffc6bb35)

责任编辑:庞桂玉 来源: Linux中国 Kubernetes命令

(责任编辑:休闲)

    推荐文章
    热点阅读