![](/img/trans.png)
[英]kubernetes PersistentVolume over google cloud storage bucket
[英]Google Cloud Bucket connection from Kubernetes deployment using Storage API
我們有一個Java應用程序在Kubernetes集群部署中運行。 我們正在使用Google Cloud Bucket作為存儲。 我們使用Java Files.move方法將文件從持久卷聲明(PVC)移到存儲桶:
import java.nio.file.Files;
Files.move(source, target, StandardCopyOption.REPLACE_EXISTING)
但是我們的寫入性能越來越差。 因此,我們嘗試探索Google Cloud Storage API ,將文件從PVC移到存儲桶。
try {
log.info("before getService");
Storage storage = StorageOptions.newBuilder()
.setCredentials(GoogleCredentials.create(aToken)).build()
.getService();
// aToken is the access token of the service account
log.info("after getService");
} catch (Exception e) {
log.error("Error while creating storage object - ", e);
}
但是只有“ before getService”被記錄。 在那之后什么也沒有發生。 沒有異常被拋出。 進程卡在getService()中
相同的應用程序可以在使用Google Storage Bucket的本地部署中使用,但不適用於Kubernetes部署。
對我來說,更新Google Storage API的版本可以解決此問題。 在我的Gradle構建文件中,我使用的是1.36,切換到1.42后,它運行良好。
問題是由於pom.xml中的api版本號(我們正在使用Maven)所致。 在pom.xml中對版本1.23.0進行更改可以解決該問題。
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.23.0</version>
</dependency>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.