首页 > 解决方案 > 如何将 docker name 参数添加到 kuberntes 集群中

问题描述

我在 Kubernetes(v1.15.2) 中部署 xxl-job 应用程序,现在应用程序部署成功但注册客户端服务失败。如果将其部署在 docker 中,它应该如下所示:

docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://mysql-service.example.com/xxl-job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=<mysql-password>" -p 8180:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:2.0.2

当启动应用程序时,服务器端给我提示:

22:33:21.078 logback [http-nio-8080-exec-7] WARN  o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/xxl-job-admin/api/registry] in DispatcherServlet with name 'dispatcherServlet'

我正在从项目问题中搜索,发现问题可能是我无法将 docker 中的项目名称作为其 url 的一部分,所以给我这个提示。客户端给出这个错误:

23:19:18.262 logback [xxl-job, executor ExecutorRegistryThread] INFO   c.x.j.c.t.ExecutorRegistryThread - >>>>>>>>>>> xxl-job registry fail, registryParam:RegistryParam{registryGroup='EXECUTOR', registryKey='job-schedule-executor', registryValue='172.30.184.4:9997'}, registryResult:ReturnT [code=500, msg=xxl-rpc remoting fail, StatusCode(404) invalid. for url : http://xxl-job-service.dabai-fat.svc.cluster.local:8080/xxl-job-admin/api/registry, content=null]

所以为了解决这个问题,我应该尽可能像在 Kubernetes 中一样执行命令,比如用 docker 执行。问题是:如何将 docker 命令传递--name给 kubernetes 环境?我已经尝试过这个:

           "env": [

              {
                "name": "name",
                "value": "xxl-job-admin"
              }
            ],

并且还尝试了这个:

        "containers": [
          {
            "name": "xxl-job-admin",
            "image": "xuxueli/xxl-job-admin:2.0.2",
         }
         ]

两者都没有工作。

标签: dockerkubernetes

解决方案


推荐阅读