Quarkus 打著雲原生, Kube-native 的口號,對於 Kubernetes 的支援當然是不可少,Quarkus 官方的文件與相關的 Extension 也都很豐富,想了想要挑哪種來介紹都不對,所以這邊主要整理 Quarkus k8s 佈署的相關資源
到了 K8S 要佈署時,是否為了撰寫 yaml 而頭大。沒關係 Quarkus 自動幫你生,增加以下的 Dependency, 在 maven build時就會自動生成 K8S yaml 與 json
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-kubernetes</artifactId>
</dependency>
可以看到 health, metric 的設定也都是已經指到 ap 的相對位置,可以直接拿來佈署了
Quarkus 可以 compile 成 native,或許會想到可以用上 FaaS, AWS Lambda..., Quarkus 也有專門一個分支 funqy 專攻這塊。不過 native compiler 下來一來可能會花不少力氣,Native 的踩坑,編譯時的等待等等的,效能可能只是跟 NodeJS 差不多,這樣成本與效益一比就很明顯
可以參考這篇的效能評比
https://bmccann.medium.com/is-quarkus-the-magic-bullet-for-java-and-aws-lambda-567a0968a971
微服務先天就是個分散式系統,怎麼找到可靠的 Service provider,或是同個 serivce 的不同 instance 也是重要的。在 k8s 我們除了 DNS Service Discovery ,也會有 Discovey Service。 Quarkus 提供了 SmallRye Stork 的幫助,可以容易的在 k8s 環境利用 Consul and Kubernetes 發現服務。
https://quarkus.io/guides/stork