我将Terraform与GKE集群结合使用,效果很好。然后,我希望Terraform在群集上执行一些Kubernetes级别的操作(使用k8s提供程序)-规模不大,只需安装几个Deployments等。
我遇到的问题是权限。我希望使用一种整洁,整洁,声明式的方法来创建集群,并拥有一组凭据,以便我可以使用短期凭据对其进行“管理”操作,包括引导其他用户。我知道如何使运行TF的google用户成为群集的管理员(这个问题经常出现),但这似乎不是很好。尤其重要的是,k8s TF提供程序不支持clusterolebinding(Issue,部分PR),因此您必须先使用配置程序“淘汰” ,然后再local-exec运行。gcloud container clusters get-credentialskubectl create clusterrolebinding ...
同样,我不想设置主密码,因为我不想在HTTP基本身份验证上运行。最好的选项似乎是TF GKE资源返回的密钥/证书对,但是其CN为“ client”,并且该用户没有权限。因此,再次使用它的唯一方法是将其封装到kubectl中,将其传递给gcloud服务帐户凭据,并为其添加一个用于“客户端”的clusterrolebinding,这时我也可以像服务帐户一样做所有事情像上面一样。
相比之下,在EKS上,创建集群的(AWS IAM)用户具有开箱即用的cluster-admin(我假设AWS authn提供程序声称该用户位于“ system:masters”中)。
我在这里的实际问题是:Terraform中是否有一种整洁的,完全声明性的方式来建立集群并提供(最好作为输出使用)一组有效的凭据,然后使用它们删除?(是的,我知道他们会留在tfstate中)
我的选择似乎是:
而且我不喜欢任何一个!
google-compute-engine kubernetes google-kubernetes-engine terraform
我正在尝试调试服务网格,Envoy 位于中间。访问日志显示了很多 503,它们的%RESPONSE_FLAGS%. 除了access logging docs 之外,我找不到关于标志实际含义的任何解释。
例如,简洁的NR意思是“我向下游发送了 404,但不是因为上游向我发送了一个,而是因为我没有匹配的路由,所以我,特使生成了 404”。我会喜欢像这样的单衬线用于其他一些。特别是我在苦苦挣扎(这些都出现在我们的日志中......)
URvs UC- 我认为这些是“我向下游发送了 503,因为我连接了上游,但随后出现了问题”。什么问题?具体来说,remote resetvsconnection termination是什么意思?LR connection local reset- 这是什么意思?特使向下游发送了 503,因为它决定停止与上游对话,中途?为什么会那样做?<no flag>- 我是否正确地假设,如果有像404or503和 no这样的错误代码RESPONSE_FLAGS,那个代码是由上游发送的,只是被转发了?