我试图获取正在被杀的pod的内部IP。我现在所做的是订阅有理由的事件" Killing"有一个"涉及对象"类型为" Pod"。如果是这样,我尝试检索pod以获取其IP。问题(我认为)是,当我发出请求时,Pod已经被杀死了所以我不能以这种方式使用它(这种方法在理由是"创建")时工作正常。
有没有办法在Kubernetes实际移除之前获取正在停止/杀死的吊舱的内部IP?
更新
我尝试做的是为Turbine实现Kubernetes服务发现模块(A),以检测公开Hystrix streams的所有pod。我使用fabric8 k8s library来观察Kubernetes事件。当A发现事件是一个使用标签" hystrix-stream"我加载pod详细信息(使用fabric8库)以获取pod的内部IP。然后将此IP发送到Turbine,以便它订阅hystrix流。这很棒!问题是,当A发现一个pod被杀死时,我无法加载pod的详细信息,因为那时pod已被删除。因此我无法获得pod的IP,我无法告诉Turbine取消订阅此pod。我的解决方法是在A中维护状态,将pod名称映射到其IP地址。所以我所追求的是一种避免在A中保持这种状态的方法,而是向Kuberentes询问正在被杀死的pod的IP地址。
答案 0 :(得分:2)
约翰 -
您可以观看pods资源以获取添加/更新/删除事件。 http://kubernetes.io/v1.1/docs/api-reference/v1/operations.html,搜索'列表或观看种类Pod'的对象。希望有所帮助。
请注意,上述事件不是指Event API资源,而是指事件。