Kubernetes client-java方式创建命名空间,创建pod容器,创建serice服务等功能

    最近工作任务就是调用k8s的接口服务,然后也是解决了很多坑目前调用K8s api的方面资料少用的人少,那么就把这些积累的点记下来分享一下,也希望对大家的工作和学习有帮助。

 

1.api接口访问方式

1.1 授权方式

调用k8s使用rest api形式一个是安全的地址https:127.0.0.1:6443,这个地址需要有认证权限的,可以是token方式或者是证书,这个也是我一开始使用的方式,无奈没有办法知道token什么时候过期,但是目前实验只要K8s正常启动一直没有换token也还是可以使用。

那我现在就用Kuboard获取token的方式也是能有权限操作k8s客户端接口的,如果跳过可以看1.2不授权方式,我java接口调用用的就是这种方式。

应该可以使用命令直接查询,但我这边是用的k8s的可视化Kuboard,其实kubernetes-dashboard这个官方的可视化也是可以的获取的,我拿Kuboard为例,kuboard官网获取token的命令是

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')  

然后就会获取到如下token ,直接拷走token,用https:127.0.0.1:6443地址就能进行postman测试了

当然kubernetes-dashboard也是一样要获取token,获取完的token我们这个地址也一样能使用

1.2 不授权方式

第二个方式是不安全的地址http://127.0.0.1:8008,就是说可以不用认证权限就可以直接访问K8s了,因为真的不知道token什么时候过期,2是k8s不稳定老是重装我就得需要换token,麻烦所以我就用这种方式了,但是网上都说这个地址可以使用但是我用一直拒绝访问我根本没法使用,原因是因为我们没有进行配置,需要对kube-apiserver进行配置地址供我们访问。

输入如下命令:

vim /etc/kubernetes/manifests/kube-apiserver.yaml

 在下图的地方添加以下,写好以后保存退出,他就会重启稍微等一下我们就可以访问一下地址

- --enable-swagger-ui=true
- --insecure-bind-address=0.0.0.0
- --insecure-port=8008

我的就可以访问了

2.java(springboot)方式调用k8s api

2.1.java连接k8s初始化

#yml
k8s:
  api-http: http://192.168.7.115:8008
 @Value("${k8s.api-http}")
 private String httpApi;

  /**
     * k8s的初始化
     *
     * @return
     */
    public ApiClient getConnection() {
        ApiClient client = new ClientBuilder().
                setBasePath(httpApi).setVerifyingSsl(false).build();
        //setAuthentication(new AccessTokenAuthentication(token))
        Configuration.setDefaultApiClient(client);
        return client;
    }

2.1 java调用k8s创建命名空间

 public Map<String, String> creatNamespace(V1Namespace body) {
        Map<String, String> message = new HashMap<>();
        // k8s初始化
        ApiClient client = k8sInit.getConnection();
        CoreV1Api apiInstance = new CoreV1Api();
        try {
            V1Namespace result = apiInstance.createNamespace(body, null, null, null);
            message.put("success", "应用命名空间创建成功!");
        } catch (ApiException e) {
            log.error("Ex
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值