本地Windows下与远程Kubernetes进行开发联调

若如初见. 提交于 2020-12-31 14:22:36

第一步 配置kubectl

  • 本地安装 kubectl ,并配置路径到环境变量中。
  • 找到服务器上的apiserver.crt文件,一般在/etc/kubernetes/pki中,执行openssl x509 -in apiserver.crt -noout -text | grep DNS命令.
  • 在本机hosts中添加添加上图中的DNS值任意一条域名(通常为kubernetes),ip地址为k8s服务器外网IP。
  • 下载服务器端的~/.kube/config到本地,配置kubectlconfigconfig文件通常在C:\Users\{用户}\.kube\下,将clusters:clusters:clusters:的地址改为hosts中配置的域名。

第二步 配置KT-Connect并使用IDEA进行开发联调

  • 下载KT-Connect,本地安装并配置路径到环境变量中。
  • IDEA 下载并安装最新版本的JVM Inject插件
  • 在IDEA打开的项目的目录下使用ktctl启动本地到集群的socks5代理服务, ktctl connect --method=socks5 --dump2hosts
  • 在IDEA刷新目录,直到可以看到.jvmrc文件,就可以启动项目,VM Inject插件会在Java程序启动时自动读取.jvmrc文件,并追加到程序的启动参数中,如下所示:

java ...省略的其他输出... -Djava.rmi.server.hostname=127.0.0.1 -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dhttp.proxyHost=127.0
  • 就可以访问到集群内的地址了
@ApiOperation("k8s测试")
@PostMapping("/index")
public Result<String> index() {
    String s = HttpUtil.get("http://10.233.99.24:8080");
    return Res.ok(s);
}

浏览器直接访问集群内地址效果:

Java程序访问效果:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!