Kubernetes官方java客户端之一:准备

  1. 开发工具:IntelliJ IDEA 2019.3.2 (Ultimate Edition)

运行环境

编码完成后要运行在K8S环境,该环境只有一台CentoOS电脑,信息如下:

  1. 操作系统:CentOS Linux release 7.8.2003

  2. K8S:1.15.3

选定client-java版本

  1. K8S有多个版本,java客户端也有多个版本,用的时候如何选择呢?请参考官方给出的兼容性列表:

在这里插入图片描述

  1. 如上图,横向是K8S版本,纵向是java客户端版本,表格中有三种符号,含义如下:
  • ✓ 表示从特性到API,客户端和K8S环境都匹配;

  • + 表示客户端有些特性和API与K8S环境无法匹配,但是他们共有的特性和API都能正常运行;

  • - 表示当前K8S环境上有些特性和API是客户端无法提供的;

  • 我的K8S版本是1.15,可见7.0.0版本的客户端是最合适的,后续的实战中也就选用该版本了,请您根据自己K8S的情况选择对应版本;

SpringBoot应用操作权限

  1. 后面的实战中,咱们的SpringBoot应用会以Pod的形式运行在K8S环境,通过client-java的API操作K8S,而K8S自然不会允许Pod随意对环境中的pod、deployment这些资源进行操作,因此我们要遵照K8S的规范进行RBAC相关的操作;

  2. K8S的角色设置可以非常详细,但也会更复杂,咱们还是不要花太多时间在这上面吧,这里我选择了使用K8S自带的最高权限的角色:cluster-admin,您可以按照自己的实际情况定制角色,下面是具体操作;

  3. SSH登录K8S,创建namespace:

kubectl create namespace kubernetesclient

  1. 创建文件rbac.yaml,内容如下:

apiVersion: v1

kind: ServiceAccount

metadata:

name: kubernates-client-service-account

namespace: kubernetesclient


kind: ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1

metadata:

name: kubernates-client-cluster-role-binding

subjects:

  • kind: ServiceAccount

name: kubernates-client-service-account

namespace: kubernetesclient

roleRef:

kind: ClusterRole

name: cluster-admin

apiGroup: rbac.authorization.k8s.io

  1. 今后的实战中,SpringBoot应用都会部署在名为kubernetesclient的namespace之下,使用名为kubernates-client-service-account的Service Account;

IEDA安装插件

因为项目中用到了Slf4j注解,请在IEDA上安装lombok插件,否则编写log相关代码的时候会有红叉:

在这里插入图片描述

创建所有java应用的父工程

  1. 后面的实战要创建多个SpringBoot应用,有必要提前创建一个父maven工程,将依赖库的定义和版本都放在在此;

  2. 创建名为kubernetesclient的maven工程,pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.3.1.RELEASE

com.bolingcavalry

kubernetesclient

1.0-SNAPSHOT

pom

helloworld

outsidecluster

<java.version>1.8</java.version>

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

1200页Java架构面试专题及答案

小编整理不易,对这份1200页Java架构面试专题及答案感兴趣劳烦帮忙转发/点赞

百度、字节、美团等大厂常见面试题

1200页Java架构面试专题及答案

小编整理不易,对这份1200页Java架构面试专题及答案感兴趣劳烦帮忙转发/点赞

[外链图片转存中…(img-vQojH8YG-1714411955131)]

[外链图片转存中…(img-sZABP8FV-1714411955131)]

百度、字节、美团等大厂常见面试题

[外链图片转存中…(img-EeWIMbao-1714411955131)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值