本地Windows下與遠程Kubernetes進行開發聯調

第一步 配置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程序訪問效果:

FAQ

  • 啓動時出現下圖錯誤

解決方法: 刪除.ktctl文件夾下的pid文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章