Kubernetes API Client 的形式与 Kubernetes对接的优缺点有哪些?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Kubernetes API Client 的形式与 Kubernetes对接的优缺点有哪些?

来自:阿里云云原生 2021-03-17 17:17:30 907 2

Dubbo通过 Kubernetes API Client 的形式与 Kubernetes 对接的优缺点有哪些

取消 提交回答
全部回答(2)
  • 1358896759097293
    2021-03-18 23:04:02
    1. 需要指出的是,让应用本身直接与 Kubernetes 管理平台的 API 交互本身就存在一 定安全隐患,如果配置不当有一定可能性导致拖垮整个 Kubernetes 集群。 2. 当应用大量更新时会给 Kubernetes API Server 带来一定压力 3. 直接将 Dubbo 的服务发现过程对接到 Kubernetes 集群的管理上,可以在 Kubernetes 环境下进一步简化管理的复杂度
    0 0
  • 苍霞学子
    2021-03-18 16:31:40

    K8S API即K8S集群提供的RESTFUL接口,通过接口可以操作K8S集群资源(可以理解为kubectl的restful api版),例如可以进行list、read、patch、replace、create、delete、watch等操作。 可通过K8S官方维护的Java库访问K8S集群的API接口, 示例代码:

    import io.kubernetes.client.openapi.ApiClient; import io.kubernetes.client.openapi.ApiException; import io.kubernetes.client.openapi.Configuration; import io.kubernetes.client.openapi.apis.CoreV1Api; import io.kubernetes.client.openapi.models.V1Pod; import io.kubernetes.client.openapi.models.V1PodList; import io.kubernetes.client.util.Config; import com.google.gson.reflect.TypeToken; import io.kubernetes.client.openapi.models.V1Namespace; import io.kubernetes.client.util.Watch;

    import java.io.IOException;

    public class Example { public static void main(String[] args) throws IOException, ApiException{ //加载默认配置 ApiClient client = Config.defaultClient(); Configuration.setDefaultApiClient(client);

        CoreV1Api api = new CoreV1Api();
        //查询pod列表
        V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
        for (V1Pod item : list.getItems()) {
            System.out.println(item.getMetadata().getName());
        }
        
        //监控namespace变化
        Watch<V1Namespace> watch = Watch.createWatch(
                client,
                api.listNamespaceCall(null, null, null, null, null, 5, null, null, Boolean.TRUE, null, null),
                new TypeToken<Watch.Response<V1Namespace>>(){}.getType());
    
        for (Watch.Response<V1Namespace> item : watch) {
            System.out.printf("%s : %s%n", item.type, item.object.getMetadata().getName());
        }
    }
    

    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    

    Client认证方式

    关于K8S api接口认证方式可以通过查看源码Config.defaultClient()发现,分为以下三种: 在这里插入图片描述在这里插入图片描述

    (1)从环境变量KUBECONFIG获取config文件位置并解析;

    (2)从路径$HOME/.kube/config获取config文件位置并解析;

    (3)获取k8s容器内serviceAccount的ca.crt和token信息;

    可见方式(1)、(2)适用于程序运行在K8S节点的宿主机上,即节点上存在$HOME/.kube/config文件,同时通过方式(1)也可实现本地开发联调K8S API,即在本地$HOME/.kube/config文件路径下设置对应的K8S集群的config文件即可,之后client程序会自动加载该config文件(实际测试时可直接通过config文件中的server直接访问k8s api,即可在非K8S 集群pod内可直接访问K8S API,无需认证);

    0 0
添加回答
相关问答

1

回答

Kubernetes 集群是如何通过编排模板创建应用的呢?

2021-11-07 16:49:40 125浏览量 回答数 1

1

回答

Kubernetes在基础设施方面如何保证集群的安全性呢?

2021-11-12 17:10:22 142浏览量 回答数 1

1

回答

Kubernetes在权限方面如何保证集群的安全性呢?

2021-11-12 17:10:14 127浏览量 回答数 1

1

回答

Kubernetes集群数据存储在以下哪个位置?

2021-10-27 22:04:57 308浏览量 回答数 1

1

回答

Kubernetes集群中的minions是什么呀?

2021-10-27 22:02:42 306浏览量 回答数 1

1

回答

Kubernetes中集群联邦是什么呀?

2021-10-27 22:02:02 166浏览量 回答数 1

1

回答

Kubernetes的集群是什么?

2021-10-26 01:08:37 408浏览量 回答数 1

1

回答

Kubernetes里集群是什么呀?

2021-10-25 23:19:33 310浏览量 回答数 1

0

回答

在自建Kubernetes集群上安装安装logtail组件报错

2021-10-22 13:20:54 830浏览量 回答数 0

1

回答

在Serverless Kubernetes中如何创建集群及部署应用?

2021-03-23 20:18:03 417浏览量 回答数 1
+关注
1358896759097293
45271990@qq.com
0
文章
2125
问答
来源圈子
更多
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
+ 订阅
相关文档: 应用高可用服务 AHAS Prometheus监控 应用实时监控服务 ARMS
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载