无服务器和 Kubernetes 原生 Ja 部署方
发布时间:2025-05-09
有了原生可执行副本,就才会只能 Ja 虚拟机(JVM)来试运行 Ja 插件了。相反,原生比如说可以试运行在 Substrate VM 上,它是 GraalVM 之从前的试运行时组件(如塑胶袋收集器、缓存分派)。
另外,Ja 原生编译使技术开发医务人员在无服务于器岗位输出之从前也之后执意可用 Ja 插件,因为原生可执行副本可以更长冷关机的关机星期,而这原本是许多跨国公司想要选用无服务于器架构时面临的小得多终究之一。
上面是一份简单的教程,简述如何内置必要的 C 语言瓦和依赖项,然后在你的操作系统会上将 Ja 插件编译转成一个原生可执行的比如说。
内置 C 语言瓦
为了支持 C 语言原生编译,只能可用表列军令内置 GCC 和具体瓦:
Fedora:$ sudo dnf installgcc glibc-devel zlib-devel libstdc++-static
Debian:$ sudo apt-get install build-essential libz-dev zlib1g-dev
macOS$ xcode-select ----install
要明白更多关于如何内置 GraalVM 的电子邮件,请会见道这个网站。
( )
配有 GraalVM
设申请人表 GRAALVM_HOME:
Linux$ export GRAALVM_HOME=$HOME/Development/graalvm/
macOS$ export GRAALVM_HOME=$HOME/Development/graalvm/Contents/Home/
内置原生比如说应用软件:
${GRAALVM_HOME}/bin/gu install native-image
如果还没设的话,请可用表列军令设申请人表 JAVA_HOME:
$ export JAVA_HOME=${GRAALVM_HOME}
不过,生转成原生比如说只能未及先共享很多关于插件的电子邮件。只有当一个类或方法被明确申请人后,反射光才都会起作用。这就立即 Ja 自由软件在借助于原生可执行比如说之从前,对局限性所有的插件展开转换,以便申请人反射光。
Kubernetes 原生 Ja 讲义:Quarkus
如果可以之后技术开发容原生薄服务于,而且不只能光阴太多星期处理反射光,那么你是否只只能在调遣到 Kubernetes 战略性之从前借助于一个原生可执行比如说?我很确定,这对 Ja 自由软件来说是不错的。
Quarkus 是一个自由软件计划,用以共享一个标准的 Ja 电子技术栈,使 Ja 自由软件不仅可以在 OpenJDK 上借助于器皿优先的插件,还可以编译生转成原生可执行副本,在 Kubernetes 战略性上试运行,从而赢得表列理论上:
将尽可能多的岗位集中于到借助于下一阶段 尽可能地提高试运行时依赖 尽可能地消除死预定义 扩展细致的元数据契约 增强技术开发医务人员的玩游戏(如 DEV UI、技术开发服务于、军令行)。Quarkus 还共享了一个扩展,即 Funqy,其意在是针对 OpenShift 无服务于器、Knative、AWS Lambda、Azure Functions 和网易容分析方法软件等无服务于器分析方法软件编订VB的无服务于器formula_。上面是一份快速讲义指南,简述如何利用 Quarkus 另行建一个可用了原生可执行编译的无服务于器formula_。
另行建一个无服务于器 Ja 计划
架起一个 Quarkus 计划,并可用 Quarkus 军令行应用软件创建一个formula_:
$ quarkus create quarkus-serverless-example -x funqy-http
这个军令都会小弟你iTunes Funqy 扩展,并开业 Quarkus Funqy 动态,其转换成如下所示:
Creating an app (default project type, see ----help). --------------------- selected extensions: - io.quarkus:quarkus-funqy-httpapplying codestarts...jamenquarkusconfig-propertiesdockerfilesmen-wrapperfunqy-http-codestarts
---------------------
Quarkus 计划转成功创建到上面的书目里:
----> /Users/USERNAME/quarkus-serverless-example---------------------探讨另行创建的formula_
转回项意在根书目,打开 src/main/ja/org/acme 书目下的 MyFunctions.ja 副本。其之从前匹配生转成了一个简单的formula_方法 fun,可以返回问道候电子邮件。@Funq 注释使一般方法转被选为可以通过 RESTful API 会见道的formula_。
@FunqpublicString fun(FunInput input){ returnString.format( "Hello %s!", input != null? input.name : "Funqy"); }可以另行增一个formula_或在整体的formula_之从前加到销售业务逻辑。这里,我们不再留存匹配预定义。
借助于并将原生可执行副本调遣到 Kubernetes
Quarkus 共享了一个 OpenShift 扩展,用以借助于插件并将其调遣到 Kubernetes 战略性上。执行表列 Quarkus 军令行来加到扩展:
$cdquarkus-serverless-example $quarkus ext add openshift转换成如下所示:
Looking for the newly published extensions in registry.quarkus.io
[SUCCESS] ✅ Extension io.quarkus:quarkus-openshift has been installed
在 src/main/resources 书目之从前的 application.properties 副本之从前加到表列用以 Kubernetes 调遣的配有。只能将 YOUR_NAMESPACE 替换为实际调遣该动态的定名为空间(例如 doh-dev)。
quarkus.container-image. group=YOUR_NAMESPACE quarkus.container-image.registry=image-registry.openshift-image-registry.svc: 5000quarkus.kubernetes-client.trust-certs= truequarkus.kubernetes.deployment-target=knativequarkus.kubernetes.deploy= truequarkus.openshift.build-strategy=dockerquarkus.openshift.expose= true也可以可用器皿试运行时(如 Docker 或 Podman)借助于一个原生可执行比如说,只要加到表列配有:quarkus.native.container-build=true
举例来说,这里( )有化解建议瓦。
为了调遣该formula_,你可以可用自己的 Kubernetes 战略性(例如 minikube),但我建议可用红帽 OpenShift 自由软件沙盒。你只要申请人一个免费银行帐户,它都会共享一个共享 Kubernetes 战略性。该沙盒使你能够在 10 分钟内关机一个另行的 Kubernetes 战略性,须要在本地副本系统会上展开任何内置或配有。
执行表列 Quarkus 军令行,借助于并调遣formula_到 Kubernetes 战略性:
$ quarkus build ----native ----no-tests
转换成应该以 BUILD SUCCESS 消息结束。
转回 OpenShift 技术开发控制台的 Topology 视所示,可以看到 Ja formula_(quarkus-serverless-example-00001)仍未调遣完毕。该formula_可能都会被缩减到为零,因为 Knative 服务于的匹配设为 30 秒,如果在这段星期内不能在线流量进发该formula_的 pod,formula_就都会停掉,如所示 2 所示。
所示 2:Topology 视所示之从前的formula_
举例来说,可以给 REV 和 KSVC 加到一个另行页面,将 pod 结果显示为 Quarkus formula_,让你在发送给 Topology 视所示时可以轻松区分各 pod。可用 oc 军令行,如下所示:
向 REV 加到一个 Quarkus 页面: oclabel rev/quarkus-serverless-example- 00001app.openshift.io/runtime=quarkus ----overwrite 向 KSVC 加到一个 Function 页面: oc label ksvc/quarkus-serverless-example boson.dev/ function= true----overwrite镜像 RouteURL,然后水印到表列 CURL 军令行之从前来会见道该formula_。例如,该 URL 看起来可能是这样: 。
$ curl ----header "Content-Type: application/json" ----request POST ---- data'{"name":"Daniel"}' YOUR_ROUTE_URL/ fun输入类似上面这样:Hello Daniel!
来到 Topology 视所示,你都会看到formula_ pod 在短星期内启动时关机,如所示 3 所示。
所示 3:向右扩展formula_
发送给 pod 日志,你都会注意到 Ja 无服务于器formula_是作为一个 native 比如说试运行的。它的关机星期是 17 毫秒,如所示 4 所示。
所示 4:原生可执行副本的关机星期
啊,一个超音速的亚原子分析方法!从现在开始,这些另行的 Ja 无服务于器formula_将使你能够在 Kubernetes 上建模森林资源可用,提高污染物排放。
小 结
本文简述了 Ja 无服务于器插件。在器皿分析方法软件上(如 Kubernetes),它共享了比其他任何编程语言都低的森林资源运动飞行速度,可以小弟助组织提高污染物排放,如所示 5 所示。
所示 5:器皿分析方法软件上多个插件的森林资源运动飞行速度
要借助于 Ja 插件原生比如说,技术开发医务人员还可以并不只能三个 GraalVM 发行台湾版之从前的一个:Oracle GraalVM 社区台湾版(CE)、Oracle GraalVM 跨国公司台湾版(EE)和 Mandrel。从这里可以进一步明白 GraalVM 和 Mandel 彼此之间的区别。如果要之后 Kubernative 原生 Ja 之旅,可以会见道这个网站。
创作者简介:
Daniel Oh 是红帽公司低级首席电子技术市场营销经理,负责向自由软件简述如何可用容原生试运行时(即 Quarkus、Spring Boot、Node.js)和 OpenShift/Kubernetes 借助于容原生薄服务于和无服务于器formula_。作为 CNCF 大使,Daniel 将之后为各种容自由软件计划和生态系统会做出贡献,以加速 DevOps 在跨国公司之从前的分析方法。他在许多电子技术研讨都会、岗位坊和聚都会上表态,为跨国公司技术开发医务人员和 DevOps 制作团队阐述另行兴电子技术。
位数化不是试出来,而是蹚出来的 | 行知位数之从前国
此情可待转成追忆:Ja Mac 台湾版的黄金时代
腾讯所有事业群之后医务人员缩减到;字节抽搐更另行价值观;传阿里正逐步解除与蚯蚓上市公司的销售业务往来 | Q 网际网路
容计算的全球大变局与之从前国故事
点个在看少个 bug👇
。术后吃什么肠道菌群失调怎么调理
小儿积食吃什么药
安必丁治疗骨关节炎
藿香正气口服液
扶他林和英太青双氯芬酸钠凝胶哪个有用
类风湿
克癀胶囊治疗什么
视疲劳滴哪个滴眼液比较好
什么血糖仪准确度高
-
上半年你心目中的最佳平板电脑是哪款?这四款个人觉得很出色
聊,说说本年度上半年你心目中的最佳iPad是哪款?虽然说本年度的高通骁龙8 Gen1体现上依然有点摆烂,不过好在发布的新机还是颇为多的,从自带上来看,无论是母舰机还是中低端机堆料都挺拔的,我也来
- 2025-05-09单节锂电池线性充电 杰华特IPO:专为在USB电源领域工作而所设计
- 2025-05-09无意中翻到吃灰已久的华为P20,极光色真的吓人
- 2025-05-0937年守护如初 樱花热水器承诺安全运行竭尽所能
- 2025-05-09ATP涡轮螺旋桨线客机
- 2025-05-09唱吧邱观琛:元宇宙两大猜想
- 2025-05-09超短昂投影幕布推荐:为什么亮度增益幕布更受用户喜欢
- 2025-05-09道尽人生的文中,佛语禅心
- 2025-05-09V社修改Steam掌机移动设备SSD规格 两种型号混用
- 2025-05-09幸福怎么过
- 2025-05-09正朗精密|斯塔夫基对粉末冶金产品质量的影响有哪些?