kubernetes-client的使用--java中提交argo工作流(2)
- UID
- 1066743
|
kubernetes-client的使用--java中提交argo工作流(2)
开发使用
引入maven包
<!--kubernetes-client 中包括了 对应版本的kubernetes-model依赖 -->
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-client</artifactId>
<version>4.1.1</version><!-- 对应k8s的1.10.6版本-->
</dependency>
初始化client
KubernetesClient client =new DefaultKubernetesClient();
1
这种方式会按以下优先级去加载配置:
1、系统属性
2、Environment variables
3、Kube配置文件
4、已经挂载的服务帐户令牌&证书
推荐使用系统属性
以下系统属性 & 环境变量 可以用于配置:
kubernetes.master/KUBERNETES_MASTER
kubernetes.api.version/KUBERNETES_API_VERSION
kubernetes.oapi.version/KUBERNETES_OAPI_VERSION
kubernetes.trust.certificates/KUBERNETES_TRUST_CERTIFICATES
kubernetes.certs.ca.file/KUBERNETES_CERTS_CA_FILE
kubernetes.certs.ca.data/KUBERNETES_CERTS_CA_DATA
kubernetes.certs.client.file/KUBERNETES_CERTS_CLIENT_FILE
kubernetes.certs.client.data/KUBERNETES_CERTS_CLIENT_DATA
kubernetes.certs.client.key.file/KUBERNETES_CERTS_CLIENT_KEY_FILE
kubernetes.certs.client.key.data/KUBERNETES_CERTS_CLIENT_KEY_DATA
kubernetes.certs.client.key.algo/KUBERNETES_CERTS_CLIENT_KEY_ALGO
kubernetes.certs.client.key.passphrase / KUBERNETES_CERTS_CLIENT_KEY_PASSPHRASE
kubernetes.auth.basic.username/KUBERNETES_AUTH_BASIC_USERNAME
kubernetes.auth.basic.password/KUBERNETES_AUTH_BASIC_PASSWORD
kubernetes.auth.tryKubeConfig/KUBERNETES_AUTH_TRYKUBECONFIG
kubernetes.auth.tryServiceAccount/KUBERNETES_AUTH_TRYSERVICEACCOUNT
kubernetes.auth.token/KUBERNETES_AUTH_TOKEN
kubernetes.watch.reconnectInterval/KUBERNETES_WATCH_RECONNECTINTERVAL
kubernetes.watch.reconnectLimit/KUBERNETES_WATCH_RECONNECTLIMIT
kubernetes.user.agent/KUBERNETES_USER_AGENT
kubernetes.tls.versions/KUBERNETES_TLS_VERSIONS
kubernetes.truststore.file/KUBERNETES_TRUSTSTORE_FILE
kubernetes.truststore.passphrase/KUBERNETES_TRUSTSTORE_PASSPHRASE
kubernetes.keystore.file/KUBERNETES_KEYSTORE_FILE
kubernetes.keystore.passphrase/KUBERNETES_KEYSTORE_PASSPHRASE
通过authtoken
ConfigBuilder builder = new ConfigBuilder();
if (authToken !=null ) {
builder.withOauthToken(authToken);
}
Config config = builder.build();
final KubernetesClient client = new DefaultKubernetesClient(config)
或者通过master url连接
先查询master url
[zzq@localhost ~]$ kubectl cluster-info
Kubernetes master is running at https://xxxx:8080
然后在java代码中
Config config = new ConfigBuilder().withMasterUrl("http://x.x.x.x:8080").build();
KubernetesClient client = new DefaultKubernetesClient(config);//使用默认的就足够了
在pod外部运行推荐通过MasterUrl的方式
在pod中运行操作会自动获取
KubernetesClient client = new DefaultKubernetesClient();
System.out.println("自动获取k8s配置");
if(!"auto".equals(masterurl)) {
Config config = new ConfigBuilder().withMasterUrl(masterurl).build();
client = new DefaultKubernetesClient(config);
System.out.println("自定义k8s配置:"+masterurl);
} |
|
|
|
|
|