我有一个Docker映像,它运行一个python子进程,它是一个node.js
服务器,公开一个端点/check
。整个过程被放入Kubernetes pod中,并使用/check
作为readinessProbe端点
现在,在某个时刻,我想关闭这个端点,或者强制所有到达它的请求失败。理想情况下,我希望通过更高级别的实体(即Kubernetes生命周期挂钩)来实现这一点,以便不触及较低级别的实现(例如打开一个新的端点/停止,该端点/停止切换一些布尔标志并强制/check失败)
这有可能吗?如果没有,最好的选择是什么
Tags:
我相信有几个:
远程地址
来自kubernetes的对
/check
的请求将来自节点的sdnip地址(因此,如果节点的SDN子网是10.10.5.0/24
,那么请求将来自10.10.5.1),因此您可以允许来自分配给Pod的/24
的.1
的检查魔法头
httpGet
readinessProbe
允许httpHeaders:
,因此您可以为/check
打开HTTP基本身份验证,然后将- name: Authentication value: Basic xxyyzz==
放入httpHeaders:
一个正式的代理容器
向
Pod
添加第二个容器,该容器运行haproxy
并过滤/check
请求以返回401或404或任何您想要的内容。由于Pod中的所有容器共享相同的网络名称空间,因此将haproxy
配置为与node.js服务器通信将非常简单,并且您的readinessProbe
(以及liveliness
)可以继续使用URL,因为只有kubernetes可以通过使用非haproxy容器的port
来访问它。要完成该循环,请将Service
指向haproxy
容器的端口相关问题 更多 >
编程相关推荐