首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes API服务器与客户端之间的数据加密与解密

Kubernetes API服务器与客户端之间的数据加密与解密
EN

Stack Overflow用户
提问于 2020-05-16 17:52:22
回答 1查看 372关注 0票数 0

我有两个kubernetes集群设置,分别使用kubeadm和im,使用have将负载平衡流量重定向到不同的集群。现在,我想将请求重定向到每个集群的相应api服务器。因此,我需要解密ssl请求,读取“主机”HTTP报头并再次加密通信量。我的示例haproxy配置文件如下所示:

代码语言:javascript
复制
frontend k8s-api-server
        bind *:6443 ssl crt /root/k8s/ssl/apiserver.pem
        mode http
        default_backend k8s-prod-master-api-server

backend k8s-prod-master-api-server
        mode http
        option forwardfor
        server master 10.0.0.2:6443 ssl ca-file /root/k8s/ssl/ca.crt

如果我现在通过kubectl访问api服务器,我会得到以下错误:

代码语言:javascript
复制
kubectl get pods
error: the server doesn't have a resource type "pods"
kubectl get nodes
error: the server doesn't have a resource type "nodes"

我认为我使用错误的证书进行解密和加密。是否需要使用目录/etc/kubernetes/pki中的apiserver.crt、apiserver.key和ca.crt文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 00:22:50

您的设置可能需要通过客户端证书对您的Kubernetes API服务器进行身份验证;当您的HAProxy重新启动连接时,它不会使用本地机器上的客户端密钥和证书进行身份验证,而且很可能会发出未经身份验证的请求。因此,它可能没有权限了解podnode资源。

另一种方法是通过读取SNI头并以这种方式转发通信量,从而在L4上进行代理。这样,您不需要读取任何HTTP报头,因此不需要解密和重新加密通信量。这与HAProxy是可能的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61841184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档