常看绿色眼睛好 2021-03-31 15:22 采纳率: 0%
浏览 20

kubernetes部署的dubbo-monitor启动失败

1.手动docker中启动容器没有问题,通过yaml方式启动pod启动失败,pod日志“Starting the simple-monitor ...”

2.dubbo-monitor的jvm以从128m修改1g,无果

dp.yaml如下配置:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: dubbo-monitor
  namespace: infra
  labels: 
    name: dubbo-monitor
spec:
  replicas: 1
  selector:
    matchLabels: 
      name: dubbo-monitor
  template:
    metadata:
      labels: 
        app: dubbo-monitor
        name: dubbo-monitor
    spec:
      containers:
      - name: dubbo-monitor
        image: harbor.od.com/infra/dubbo-monitor:latest
        ports:
        - containerPort: 8080
          protocol: TCP
        - containerPort: 20880
          protocol: TCP
        imagePullPolicy: IfNotPresent
      imagePullSecrets:
      - name: harbor
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      securityContext: 
        runAsUser: 0
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate: 
      maxUnavailable: 1
      maxSurge: 1
  revisionHistoryLimit: 7
  progressDeadlineSeconds: 600
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 19:30
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决 Kubernetes 中 Dubbo-Monitor 的启动失败问题,你需要检查以下几点:

    1. 确保你的 Kubernetes 部署已经正确安装了 Docker 和相关的工具。
    2. 确认Dubbo-Monitor 容器的实际运行环境(例如,是否使用了特定的操作系统版本或依赖包)与Kubernetes 部署的环境兼容。
    3. 检查容器启动参数。如果Dubbo-Monitor 使用了自定义的启动参数,请确保它们在 Kubernetes 部署中也被正确设置。
    4. 如果容器启动时出现错误信息,查看日志文件以获取更多细节。

    下面是一个示例 dp.yaml 配置,展示了如何配置 Dubbo-Monitor 容器并添加适当的启动参数。这个配置应该适用于大多数情况,但具体调整可能取决于你的具体需求和环境。

    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
      name: dubbo-monitor
      namespace: infra
      labels:
        name: dubbo-monitor
    spec:
      replicas: 1
      selector:
        matchLabels:
          name: dubbo-monitor
      template:
        metadata:
          labels:
            app: dubbo-monitor
            name: dubbo-monitor
        spec:
          containers:
          - name: dubbo-monitor
            image: harbor.od.com/infra/dubbo-monitor:latest
            ports:
            - containerPort: 8080
              protocol: TCP
            - containerPort: 20880
              protocol: TCP
            imagePullPolicy: IfNotPresent
          imagePullSecrets:
          - name: harbor
          restartPolicy: Always
          terminationGracePeriodSeconds: 30
          securityContext:
            runAsUser: 0
          schedulerName: default-scheduler
          resources:
            requests:
              memory: "1G"
            limits:
              memory: "1G"
          env:
            - name: DUBBO_MONITOR_PORT_8080_TCP_ADDR
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: hostname
            - name: DUBBO_MONITOR_PORT_8080_TCP_PORT
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: hostname:port
            - name: DUBBO_MONITOR_PORT_20880_TCP_ADDR
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: hostname
            - name: DUBBO_MONITOR_PORT_20880_TCP_PORT
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: hostname:port
            - name: DUBBO_MONITOR_DUBBO_HOSTNAME
              value: dubbo-hostname
            - name: DUBBO_MONITOR_DUBBO_PORT
              value: "8090"
          volumes:
          - name: dubbo-monitor-volume
            hostPath:
              path: /var/run/docker.sock
          initContainers:
          - name: setup-docker-socket
            command:
            - /bin/bash
            args:
            - -c
            - |
              echo "export DOCKER_SOCKET=/var/run/docker.sock" >> /etc/environment
              echo "export DUBBO_MONITOR_DUBBO_HOSTNAME=dubbo-hostname" >> /etc/environment
              echo "export DUBBO_MONITOR_DUBBO_PORT=8090" >> /etc/environment
            volumeMounts:
            - name: dubbo-monitor-volume
              mountPath: /etc/environment
          restartPolicy: OnFailure
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10
    

    注意:这个示例中的配置只提供了一个基本的环境变量设置。实际应用中,你可能还需要根据你的具体需求来调整这些值。

    此外,如果你发现容器无法正常启动,建议尝试以下几个步骤:

    1. 检查网络配置,确保容器能够访问外部网络。
    2. 检查容器的日志文件,看看是否有任何错误消息或警告信息。
    3. 检查服务注册中心(例如Eureka、Consul等)是否正确配置,并且能成功向Dubbo-Monitor 注册服务。
    4. 调整 Dubbo-Monitor 的端口映射,确保它可以被 K8S 集群内的服务监听到。
    5. 确保 Dubbo-Monitor 的镜像版本是最新的,并且与当前集群中的其他组件兼容。

    希望这些建议对解决问题有所帮助!

    评论

报告相同问题?

悬赏问题

  • ¥15 软件定义网络mininet和onos控制器问题
  • ¥15 微信小程序 用oss下载 aliyun-oss-sdk-6.18.0.min client报错
  • ¥15 ArcGIS批量裁剪
  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。