如何解决是否可以通过Kubernetes API服务器代理转发授权标头?
我的Kubernetes集群内部的某个Pod上运行了一些端点,该端点受基本身份验证保护。通过API服务器访问此pod的正常方法是:
https://{{ apiServer }}:{{ apiServerPort }}/api/v1/namespaces/{{ namespaceName }}/pods/{{ podName }}:{{ podPort }}/proxy/somepath
这对于未使用Basic Auth进行安全保护的端点正常工作,但是当尝试访问安全端点时,每次都会收到403 Forbidden,因为我无法指定两个身份验证标头,并且已经需要向API进行身份验证服务器本身。 是否可以使用API服务器代理将那些基本身份验证凭据转发到Pod,或者我不走运?
解决方法
我能想到的可行解决方案是使用kubectl port-forward
。因此,Kubernetes API服务器将在您的本地主机和群集上运行的资源之间建立单个http连接。这将保留您所有的客户请求。
kubectl port-forward TYPE/NAME [options] LOCAL_PORT:REMOTE_PORT
您可以将流量发送到特定的pod,使用随机的本地端口,甚至指定用于转发的本地IP地址。
您可以阅读有关端口转发here的更多信息,并在kuberentes官方文档中查看this的示例。
如果您需要其他选择,请检查telepresence。
PS。我试图将附带的容器与kubectl代理一起使用,但不幸的是,该方法无法正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。