Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何从同一VPC内的另一个群集访问部署在专用群集上的vault_Amazon Web Services_Kubernetes_Hashicorp Vault - Fatal编程技术网

Amazon web services 如何从同一VPC内的另一个群集访问部署在专用群集上的vault

Amazon web services 如何从同一VPC内的另一个群集访问部署在专用群集上的vault,amazon-web-services,kubernetes,hashicorp-vault,Amazon Web Services,Kubernetes,Hashicorp Vault,我完全迷路了,我需要一些明确的指导 我在一个VPC中的aws上创建了2个kubernetes群集。每个集群都有自己的子网 第一个群集“MI”专用于需要vault机密的微服务和应用程序 第二个“VA”专用于领事/保险库 显然,这个想法是让“MI”集群与“VA”集群中的vault通信。在每个micro服务的init容器中,我会得到一个如下的vault令牌: $(curl -sS --request POST $VAULT_ADDRESS/v1/auth/kubernetes/login -H "Co

我完全迷路了,我需要一些明确的指导

我在一个VPC中的aws上创建了2个kubernetes群集。每个集群都有自己的子网

第一个群集“MI”专用于需要vault机密的微服务和应用程序

第二个“VA”专用于领事/保险库

显然,这个想法是让“MI”集群与“VA”集群中的vault通信。在每个micro服务的init容器中,我会得到一个如下的vault令牌:

$(curl -sS --request POST $VAULT_ADDRESS/v1/auth/kubernetes/login -H "Content-Type: application/json" -d '{"role":"$VAULT_POLICY","jwt":"$JWT"}' --insecure | jq -r 'if .errors then . else .auth.client_token end')
为了实现这一点,尽管不推荐使用,但我需要一个负载平衡器,因为我的群集节点无法访问,它们只有专用ip。。。对吧?

关于这个问题,文件说:

有时客户端使用负载平衡器作为访问的初始方法 一个Vault服务器,但实际上可以直接访问每个Vault服务器 Vault节点。在这种情况下,应实际设置Vault服务器 如上文所述,由于出于重定向目的 客户端可以直接访问

在我的情况下,请记住,vault节点位于VPC后面,我想这一段不适用于我,因为我无法直接访问这些地址

然后它说:

但是,如果对Vault服务器的唯一访问是通过加载 平衡器,每个节点上的api_addr应该相同:的地址 负载平衡器。到达备用节点的客户端将被删除 重定向回负载平衡器;在这一点上,希望负载 平衡器的配置将已更新,以了解 现任领导人。这可能会导致重定向循环,因此不是 可以避免的建议设置

我想我是在这种情况下,因为我的vault实例只能通过ELB使用,对吗? 为了使这项工作顺利进行,我明白我必须

api_addr = "https://$(LOAD_BALANCER_ADDR):8200"
有没有办法修复重定向循环

我已经看到使用ELB的配置也为它设置了全局ip。 我不明白为什么静态ip很重要?DNS还不够吗

在AWS上,您无法为LB创建全局ip,但由于kubernetes 1.9,您可以使用具有静态ip的网络LB


那么你会推荐经典LB还是最新的NLB?

这是一大堆问题,但没有说明你已经尝试过什么;我个人在TCP模式下为vault使用ELB,vault实例知道它们的和
集群地址
作为其ELB的DNS名称;备用vault实例在处于备用模式时会响应HTTP 429,这意味着您可以将它们添加到ELB,并且它们在激活之前不会接收流量K8S群集VA中有多少个vault服务器?如果你只有一个集群,那么ELB将不会是一个问题;我个人在TCP模式下为vault使用ELB,vault实例知道它们的和
集群地址
作为其ELB的DNS名称;备用vault实例在处于备用模式时会响应HTTP 429,这意味着您可以将它们添加到ELB,并且它们在激活之前不会接收流量K8S群集VA中有多少个vault服务器?如果您只有一个集群,那么ELB将不会是一个问题。