我使用contrib/ansible脚本安装了Kubernetes。 当我运行cluster-info时:
[osboxes@kube-master-def ~]$ kubectl cluster-info
Kubernetes master is running at http://localhost:8080
Elasticsearch is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging
Heapster is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/heapster
Kibana is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kibana-logging
KubeDNS is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kube-dns
kubedash is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/kubedash
Grafana is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana
InfluxDB is running at http://localhost:8080/api/v1/proxy/namespaces/kube-system/services/monitoring-influxdb
群集在具有不安全端口的localhost上公开,并通过ssl在安全端口443上公开
kube 18103 1 0 12:20 ? 00:02:57 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=https://10.57.50.161:443 -- kubeconfig=/etc/kubernetes/controller-manager.kubeconfig --service-account-private-key-file=/etc/kubernetes/certs/server.key --root-ca-file=/etc/kubernetes/certs/ca.crt
kube 18217 1 0 12:20 ? 00:00:15 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=https://10.57.50.161:443 --kubeconfig=/etc/kubernetes/scheduler.kubeconfig
root 27094 1 0 12:21 ? 00:00:00 /bin/bash /usr/libexec/kubernetes/kube-addons.sh
kube 27300 1 1 12:21 ? 00:05:36 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://10.57.50.161:2379 --insecure-bind-address=127.0.0.1 --secure-port=443 --allow-privileged=true --service-cluster-ip-range=10.254.0.0/16 --admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota --tls-cert-file=/etc/kubernetes/certs/server.crt --tls-private-key-file=/etc/kubernetes/certs/server.key --client-ca-file=/etc/kubernetes/certs/ca.crt --token-auth-file=/etc/kubernetes/tokens/known_tokens.csv --service-account-key-file=/etc/kubernetes/certs/server.crt
我已将证书从kube-master机器复制到本地机器,我已经安装了ca根证书。 chrome / safari浏览器正在接受ca根证书。 当我试图访问https://10.57.50.161/ui时 我得到了“未经授权的”
如何访问kubernetes ui?
答案 0 :(得分:21)
您可以使用kubectl代理。
取决于您是否使用配置文件,通过命令行运行
kubectl proxy
或
kubectl --kubeconfig=kubeconfig proxy
您应该得到类似的回复
开始在127.0.0.1:8001上投放
现在打开浏览器并导航到
http://127.0.0.1:8001/ui/ (已弃用,请参阅kubernetes/dashboard)
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
您需要确保端口匹配。
答案 1 :(得分:12)
这适用于我可以从网络访问
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
答案 2 :(得分:7)
查看您的apiserver配置,您需要提供持票人令牌(有效令牌将列在/etc/kubernetes/tokens/known_tokens.csv
中)或客户端证书(由/etc/kubernetes/certs/ca.crt
中的CA证书签名)以证明您应该被允许访问群集的apiserver。
https://github.com/kubernetes/kubernetes/issues/7307#issuecomment-96130676描述了我如何在Mac上为GKE群集配置客户端证书。
要传递承载令牌,您需要传递值为Bearer ${KUBE_BEARER_TOKEN}
的HTTP标头授权。您可以通过curl here查看如何完成此操作的示例;在浏览器中,您需要安装附加组件/插件才能传递自定义标头。
答案 3 :(得分:6)
访问仪表板的快速(不安全)方式:
$ kubectl edit svc/kubernetes-dashboard --namespace=kube-system
这会将Dashboard配置(yaml)加载到编辑器中,您可以在其中编辑它。
将第type: ClusterIP
行更改为type: NodePort
。
获取tcp端口:
$ kubectl get svc kubernetes-dashboard -o json --namespace=kube-system
tcp端口的行如下所示:
"nodePort": 31567
在较新版本的kubernetes中,您可以从get svc
获取nodeport:
# This is kubernetes 1.7:
donn@host37:~$ sudo kubectl get svc --namespace=kube-system
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard 10.3.0.234 <nodes> 80:31567/TCP 2h
执行kubectl describe nodes
以获取节点IP地址。
浏览至: http://NODE_IP:31567
适合测试。由于缺乏安全性,对生产不利。
答案 4 :(得分:0)
您可以使用ext_typoscript_setup.txt
答案 5 :(得分:0)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl代理&
在本地笔记本电脑(或要访问GUI的位置)中运行以下命令
获取密钥 kubectl -n kube-system描述秘密$(kubectl -n kube-system获取秘密| awk'/ ^ deployment-controller-token-/ {print $ 1}')| awk'$ 1 ==“令牌:” {print $ 2}'
打开仪表板 http://localhost:8877/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
如果遇到任何错误,请执行角色绑定。
答案 6 :(得分:-1)
api服务器,但未授权访问https://:6443 / api / v1 / namespaces / kube-system / services / https:kubernetes-dashboard:/ proxy / >
我已经生成了由kubernetes ca cert签名的客户端证书,并转换为pkcs12并集成到我的浏览器中...当尝试访问此URL时,他们说用户无权访问uri ...