docker - 如何将 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",
}
]
两者都没有工作。
解决方案
推荐阅读
- mysql - 查询以从多个表 MySQL 中进行选择
- git - 使用不是存储库的远程服务器目录更新 Gitlab 存储库
- android - 如何在没有物理 Pixel 4 设备的情况下测试 BiometricPrompt API 的人脸验证?
- angular - 过滤 NgFor 中使用的行为主题
- python - Django:使用模型继承时如何检查对象类别?
- jenkins - 詹金斯构建对远程 Windows 文件服务器的访问被拒绝
- hibernate - 在 Panache 中支持 em.merge / em.refresh
- vhdl - VHDL 中的 SDRAM 控制器
- python - 如何在将图像保存在opencv python中的同时增加图像的大小
- c# - Datetimepicker 数据绑定自定义类型