kubernetes - 内省 Docker/Kubernetes Runtime 以检查它是 Docker 容器还是 Kubernetes 集群中 POD 内的容器
问题描述
如何在运行时通过非常简单的自省来检查它是普通的 docker 容器还是包装在 pod 中的容器?
解决方案
Kubernetes 默认在容器内设置了很多环境变量。您可以检查是否设置了其中任何一个。例如:KUBERNETES_SERVICE_HOST
# kubectl exec -it api-server-594f9684b-jg2d4 env | grep KUBERNETES
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443
https://kubernetes.io/docs/concepts/containers/container-environment-variables/
推荐阅读
- java - 如何检查二维数组中的行数和列数以循环检查大小是否合适
- java - Intellij Plugin Configurable 中的标题分隔符
- android - 处理第一个连接后无法重新启动扫描
- python - 如何将 matplotlib 图形组合成多个子图?
- python - 如何用numpy在矩阵中制作斐波那契数?
- java - 尝试使用 GraphicsContext 方法 Public void fill 和 strokepolygon 以绘制正多边形
- python - 如何更改时区?
- javascript - React:如何防止 setInterval 在单击按钮启动后延迟?
- r - 为什么 lubridate::ymd_hms 不适用于非常特定的日期时间?
- cookies - jessessionId cookie 的 Samesite 只能从响应中设置