Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 部署在kubernetes性能诊断上的C#dotnet应用程序使用dotnet跟踪和计数器_Docker_Kubernetes_.net Core_Profiling_Trace - Fatal编程技术网

Docker 部署在kubernetes性能诊断上的C#dotnet应用程序使用dotnet跟踪和计数器

Docker 部署在kubernetes性能诊断上的C#dotnet应用程序使用dotnet跟踪和计数器,docker,kubernetes,.net-core,profiling,trace,Docker,Kubernetes,.net Core,Profiling,Trace,我试图使用dotnet跟踪和dotnet计数器为部署在kubernetes(GKE)集群上的应用程序启用性能诊断。为此,我在应用程序容器中添加了一个性能诊断工具。 诊断。Dockerfile: FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS tools RUN dotnet tool install --tool-path /tools dotnet-trace RUN dotnet tool install --tool-path /t

我试图使用dotnet跟踪和dotnet计数器为部署在kubernetes(GKE)集群上的应用程序启用性能诊断。为此,我在应用程序容器中添加了一个性能诊断工具。 诊断。Dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS tools
RUN dotnet tool install --tool-path /tools dotnet-trace
RUN dotnet tool install --tool-path /tools dotnet-counters
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine AS runtime
COPY --from=tools /tools /tools
ENV PATH="/tools:${PATH}"
ENV COMPlus_EnableDiagnostics="0"
WORKDIR /tools 
我在这里使用的应用程序是一个简单的hello world应用程序。 这就是我在GKE上部署这些容器的方式: deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-dotnet-diagnostics
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-diagnostics
  template:
    metadata:
      labels:
        app: demo-diagnostics
    spec:
      shareProcessNamespace: true
      containers:
      - name: demo-app
        image: gcr.io/qp-fda-mystudies-2020-07/dotnetapp:latest
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: dotnet-diagnostics
          mountPath: /tmp
      - name: demo-diagnostics
        image: gcr.io/qp-fda-mystudies-2020-07/diagnostics:latest
        stdin: true
        tty: true
        command: ["/bin/sh","-c"]
        args: ["dotnet-trace collect -p 1; dotnet-counters monitor -p 1"]
        volumeMounts:
        - name: dotnet-diagnostics
          mountPath: /tmp
      volumes:
      - name: dotnet-diagnostics
        emptyDir: {}
我在这里面临的问题是diagnostics容器不断地遇到crashloopbackoff。我在这里遇到的错误是:无法启动计数器会话:Microsoft.Diagnostics.NETCore.Client.ServerNotAvailableException:进程1未运行兼容的.NET运行时。 我一直在关注这些文章和线索: 及 目标是在后台运行这些诊断过程,并将使用这些工具捕获的信息推送到stackdriver。 我不知道我在这里遗漏了什么,因为我对dotnet比较陌生。请帮忙