我希望我的应用程序根据它是在K8s还是在开发人员机器上运行而表现出不同的行为。
有没有办法让我的Java应用程序知道它是否在K8s上下文中运行?
发布于 2020-05-02 03:39:59
一种方法是查找当您的应用程序在Kubernetes集群中运行时独占存在的环境变量。
您可以使用:kubectl exec -it -n <namespace> <pod> printenv | grep '^KUBERNETES_'获取这些变量的列表。作为参考,以下是我获得的变量(service pod):
KUBERNETES_SERVICE_HOSTKUBERNETES_PORT_443_TCPKUBERNETES_SERVICE_PORT_HTTPSKUBERNETES_PORTKUBERNETES_PORT_443_TCP_ADDRKUBERNETES_PORT_443_TCP_PORTKUBERNETES_SERVICE_PORTKUBERNETES_PORT_443_TCP_PROTO发布于 2020-05-02 04:15:41
没有什么是万无一失的,但有几个足够好的策略。最常见的是检查服务帐户凭据装载路径。另一种是显式环境变量。
https://stackoverflow.com/questions/61549326
复制相似问题