gpt4 book ai didi

kubernetes - 如何通过 https 访问 Kubernetes 服务?

转载 作者:行者123 更新时间:2023-12-02 11:41:27 26 4
gpt4 key购买 nike

这是我的集群信息

kubectl cluster-info
Kubernetes master is running at https://129.146.10.66:6443
Heapster is running at https://129.146.10.66:6443/api/v1/proxy/namespaces/kube-system/services/heapster
KubeDNS is running at https://129.146.10.66:6443/api/v1/proxy/namespaces/kube-system/services/kube-dns

所以,我有一个作为 NodePort 运行的服务(mysqlbrokerservice),配置看起来像这样
kubectl describe svc mysqlbrokerservice
Name: mysqlbrokerservice
Namespace: mysqlbroker
Labels: <none>
Annotations: <none>
Selector: app=mysqlbroker
Type: NodePort
IP: 10.99.194.191
Port: mysqlbroker 8080/TCP
NodePort: mysqlbroker 30000/TCP
Endpoints: 10.244.1.198:8080
Session Affinity: None
Events: <none>

我可以像这样 http://129.146.34.181:30000/v2/catalog 通过运行 pod 的节点的公共(public) IP 访问服务.

然后我想看看我是否可以通过https访问该服务。我按照 https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#manually-constructing-apiserver-proxy-urls 中的方向

我按照示例并使用 curl 来获取资源。
这是命令。 129.146.10.66:6443 是我的主 IP。
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET  https://129.146.10.66:6443/api/v1/namespaces/mysqlbroker/services/mysqlbrokerservice:8080/proxy/v2/catalog --header "Authorization: Bearer $TOKEN" --insecure
HTTP/1.0 200 Connection established

curl 只是坐在那里没有任何 react 。然后我查看了我的 pod 日志,它没有显示收到任何请求。

有人可以解释我在这里做错了什么吗?如果我希望通过 https 公开服务,那么理想的解决方案是什么?

最佳答案

如果您单击 kubectl cluster-info 提供的任何 URL您将看到您的浏览器提示您接受不安全的 TLS 连接。

要使 HTTP 用于此特定地址,您需要购买为主机名颁发的 TLS 证书(在这种情况下,是 IP 地址,您不能为 IP 地址购买证书)。将 Kubernetes 集群的根证书添加到您计算机的受信任根的另一个选项,但这不会使其在其他计算机上工作。

所以我假设你只是想让一个运行在 Kubernetes 上的应用程序可以通过 HTTPs 访问外部世界:

为此,我建议实际购买一个域名(或重用子域),为该主机名购买 SSL/TLS 证书,并使用 Ingress 配置具有 HTTPs 终止的负载均衡器。 https://kubernetes.io/docs/concepts/services-networking/ingress/#tls (如果您使用的是 GKE、Google 负载均衡器,否则它将配置一个本地 nginx 实例来执行此任务。)

关于kubernetes - 如何通过 https 访问 Kubernetes 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com