在App Engine中使用Kubernetes Java客户端库的问题

时间:2018-05-17 15:11:13

标签: java google-app-engine kubernetes okhttp3 google-kubernetes-engine

我想从app引擎中为Kubernetes使用this java客户端库。但是我遇到了问题,因为此客户端库使用的okhttp客户端根据此link无法在应用引擎中运行。

上一个SO链接中描述的错误是我在app引擎上遇到的确切错误。 根据此linkokhttp公开了可以被覆盖的方法,从而无法看到此问题。这个here实际上有一个库。但问题是OkHttpClient已从版本3.x开始从包com.squareup.okhttp移至okhttp3,其中存在我所需的更改。如果我尝试设置新的okhttp,则在Kubernetes客户端库中使用此旧版okhttp并显示错误。

有什么方法可以解决这个问题吗?或者是否有任何其他客户端库可以从应用程序引擎中使用。我知道来自fabric8的客户端,但截至目前,它只支持kubernetes版本1.7.10。我仍然没有在app引擎上试过它。

编辑:

即使是fabric8客户端在app引擎中也存在同样的问题。它正试图获取ProxySelector,而import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { INews } from './inews'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) export class NewsserviceService { public _url = 'http://localhost/admin/demo/api/get_posts/'; constructor( public http: HttpClient) { } getNews(): Observable<INews[]> { return this.http.get<INews[]>(this._url).pipe(map(res => res.json())); } } 不是appengine中列入白名单的类。

1 个答案:

答案 0 :(得分:2)

或者,您可以尝试使用Java 8运行时,您可以使用所有标准Java库,而Java 7运行时只允许选择列入白名单的JRE类。毕竟,现在不推荐使用Java 7运行时:https://cloud.google.com/appengine/docs/standard/java/runtime

但请注意,存在一些差异,因此您可能需要查看迁移指南:https://cloud.google.com/appengine/docs/standard/java/migrating-to-java8