gpt4 book ai didi

kubernetes - 如何在集群外部访问/公开 kubernetes-dashboard 服务?

转载 作者:行者123 更新时间:2023-12-02 22:49:09 25 4
gpt4 key购买 nike

我有以下服务:

ubuntu@master:~$ kubectl get services --all-namespaces
NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes 100.64.0.1 <none> 443/TCP 48m
kube-system kube-dns 100.64.0.10 <none> 53/UDP,53/TCP 47m
kube-system kubernetes-dashboard 100.70.83.136 <nodes> 80/TCP 47m

我正在尝试访问 kubernetes 仪表板。考虑到curl不是浏览器,以下响应似乎是合理的。

ubuntu@master:~$ curl 100.70.83.136
<!doctype html> <html ng-app="kubernetesDashboard"> <head> <meta charset="utf-8"> <title>Kubernetes Dashboard</title> <link rel="icon" type="image/png" href="assets/images/kubernetes-logo.png"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="static/vendor.36bb79bb.css"> <link rel="stylesheet" href="static/app.d2318302.css"> </head> <body> <!--[if lt IE 10]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser.
Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your
experience.</p>
<![endif]--> <kd-chrome layout="column" layout-fill> </kd-chrome> <script src="static/vendor.633c6c7a.js"></script> <script src="api/appConfig.json"></script> <script src="static/app.9ed974b1.js"></script> </body> </html>

根据文档,正确的访问点是 https://localhost/ui 。所以,我正在尝试,但收到的结果有点令人担忧。 这是预期的 react 吗?

ubuntu@master:~$ curl https://localhost/ui
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

在没有证书验证的情况下尝试相同的操作。对于 curl 来说可能没问题。但我在浏览器中得到了相同的结果,即通过 vagrantforwarded_port 选项通过端口转发进行连接。

ubuntu@master:~$ curl -k https://localhost/ui
Unauthorized

我做错了什么?以及如何确保我可以访问 UI? 目前它会响应“未经授权”。

仪表板的文档告诉密码位于配置中:

ubuntu@master:~$ kubectl config view
apiVersion: v1
clusters: []
contexts: []
current-context: ""
kind: Config
preferences: {}
users: []

但似乎我什么都没有......这是预期的行为吗?如何通过 UI 进行授权?

最佳答案

官方 wiki 有点困惑,所以我在这里重新排序:

如果您使用 recommended yaml 来部署仪表板,您应该仅通过 https 访问您的仪表板,并且您应该生成您的证书,请参阅 guide 。然后你可以运行kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'访问“http://localhost:8001/ui”上的仪表板。该页面需要使用token登录。要生成它,请参阅 this page 。您也可以添加NodePort到您的 yaml 并使用 <nodeip>:<port> 访问它.

如果您使用 http alternative 进行部署方法,您只能通过nodeip:port 访问您的仪表板。记得先添加到yaml!!部署后,您还应该生成 token 并添加 header Authorization: Bearer <token>对于每个请求

我认为这可以帮助您和其他想要使用 kube-dashboard 的人。

关于kubernetes - 如何在集群外部访问/公开 kubernetes-dashboard 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864385/

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