Kubernetes仪表板和;Docker桌面上的入口
我正在尝试通过入口访问本地PC上的kubernetes仪表板。到目前为止,我已经完成了以下步骤:Kubernetes仪表板和;Docker桌面上的入口,kubernetes,kubernetes-ingress,nginx-ingress,docker-desktop,Kubernetes,Kubernetes Ingress,Nginx Ingress,Docker Desktop,我正在尝试通过入口访问本地PC上的kubernetes仪表板。到目前为止,我已经完成了以下步骤: 通过以下方式安装Nginx入口: 当我检查kubernetes仪表板命名空间时,我注意到该服务正在端口443上运行: PS D:\dev\kubernetes-dashboard-ingress> kubectl get service -n kubernetes-dashboard -o wide NAME TYPE CLUSTE
PS D:\dev\kubernetes-dashboard-ingress> kubectl get service -n kubernetes-dashboard -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
dashboard-metrics-scraper ClusterIP 10.110.109.6 <none> 8000/TCP 135m k8s-app=dashboard-metrics-scraper
kubernetes-dashboard ClusterIP 10.110.230.166 <none> 443/TCP 135m k8s-app=kubernetes-dashboard
应用此规则后:
PS D:\dev\kubernetes-dashboard-ingress> kubectl get ingress -n kubernetes-dashboard -o wide
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
dashboard-ingress <none> my-dashboard.com localhost 80 121m
但是,当我试图通过浏览器()访问仪表板时,却一无所获。我错过什么了吗
我在这里遵循教程:。本教程是使用minikube完成的,因此在端口80上提供了仪表板。而我直接从上面的github安装的那一个在端口443上可用。我需要配置一些证书/密码吗?我注意到kubernetes dashboard在秘密中创建了一些东西:
PS D:\dev\kubernetes-dashboard-ingress> kubectl get secret -n kubernetes-dashboard -o wide
NAME TYPE DATA AGE
default-token-97skl kubernetes.io/service-account-token 3 140m
kubernetes-dashboard-certs Opaque 0 140m
kubernetes-dashboard-csrf Opaque 1 140m
kubernetes-dashboard-key-holder Opaque 2 140m
kubernetes-dashboard-token-rwgs4 kubernetes.io/service-account-token 3 140m
如果我试图描述入口:
PS D:\dev\kubernetes-dashboard-ingress> kubectl describe ingress dashboard-ingress -n kubernetes-dashboard
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
Name: dashboard-ingress
Namespace: kubernetes-dashboard
Address: localhost
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
my-dashboard.com
/ kubernetes-dashboard:443 (10.1.0.106:8443)
Annotations: kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/ssl-passthrough: true
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 7m4s (x10 over 144m) nginx-ingress-controller Scheduled for sync
PS D:\dev\kubernetes dashboard ingress>kubectl描述入口仪表板入口-n kubernetes dashboard
警告:扩展/v1beta1入口在v1.14+中不推荐使用,在v1.22+中不可用;使用networking.k8s.io/v1入口
名称:仪表板入口
名称空间:kubernetes仪表板
地址:本地主机
默认后端:默认http后端:80()
规则:
主机路径后端
---- ---- --------
my-dashboard.com
/kubernetes仪表板:443(10.1.0.106:8443)
注释:kubernetes.io/ingres.class:nginx
nginx.ingres.kubernetes.io/backend-protocol:HTTPS
nginx.ingres.kubernetes.io/ssl-passthrough:true
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
计划同步的正常同步7M4(x10/144m)nginx入口控制器
我知道我可以使用kubectl代理访问仪表板-但我想测试入口(学习它)。提前谢谢你
我正在运行以下程序:
- Docker Desktop 3.2.2(61853)
- 发动机:20.10.5
- 组成:1.28.5
- Kubernetes:v1.19.7
PS D:\dev\kubernetes-dashboard-ingress> kubectl get service -n kubernetes-dashboard -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
dashboard-metrics-scraper ClusterIP 10.110.109.6 <none> 8000/TCP 135m k8s-app=dashboard-metrics-scraper
kubernetes-dashboard ClusterIP 10.110.230.166 <none> 443/TCP 135m k8s-app=kubernetes-dashboard
PS D:\dev\kubernetes仪表板入口>kubectl获取服务-n kubernetes仪表板-o宽
名称类型CLUSTER-IP外部IP端口年龄选择器
仪表板度量刮板群集IP 10.110.109.6 8000/TCP 135m k8s app=仪表板度量刮板
kubernetes仪表板群集IP 10.110.230.166 443/TCP 135m k8s应用程序=kubernetes仪表板
在你的入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: "my-dashboard.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-dashboard # <<< This line should be kubernetes-dashboard
port:
number: 443
apiVersion:networking.k8s.io/v1
种类:入口
元数据:
名称:仪表板入口
名称空间:kubernetes仪表板
注释:
nginx.ingres.kubernetes.io/ssl-passthrough:“true”
nginx.ingres.kubernetes.io/backend-protocol:“HTTPS”
规格:
规则:
-主持人:“MyDashboard.com”
http:
路径:
-路径类型:前缀
路径:“/”
后端:
服务:
名称:我的仪表板#您的服务名称似乎有误: 您列出了您的服务:
PS D:\dev\kubernetes-dashboard-ingress> kubectl get service -n kubernetes-dashboard -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
dashboard-metrics-scraper ClusterIP 10.110.109.6 <none> 8000/TCP 135m k8s-app=dashboard-metrics-scraper
kubernetes-dashboard ClusterIP 10.110.230.166 <none> 443/TCP 135m k8s-app=kubernetes-dashboard
PS D:\dev\kubernetes仪表板入口>kubectl获取服务-n kubernetes仪表板-o宽
名称类型CLUSTER-IP外部IP端口年龄选择器
仪表板度量刮板群集IP 10.110.109.6 8000/TCP 135m k8s app=仪表板度量刮板
kubernetes仪表板群集IP 10.110.230.166 443/TCP 135m k8s应用程序=kubernetes仪表板
在你的入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: "my-dashboard.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-dashboard # <<< This line should be kubernetes-dashboard
port:
number: 443
apiVersion:networking.k8s.io/v1
种类:入口
元数据:
名称:仪表板入口
名称空间:kubernetes仪表板
注释:
nginx.ingres.kubernetes.io/ssl-passthrough:“true”
nginx.ingres.kubernetes.io/backend-protocol:“HTTPS”
规格:
规则:
-主持人:“MyDashboard.com”
http:
路径:
-路径类型:前缀
路径:“/”
后端:
服务:
名称:我的仪表板#好的。解决了这个问题。我的请求(在chrome中)通过了公司代理,这并没有将请求进一步转发到我的kubernetes集群。将“my dashboard.com”添加到无代理列表后,我可以通过浏览器访问它
谢谢托马斯的指点 好的。解决了这个问题。我的请求(在chrome中)通过了公司代理,这并没有将请求进一步转发到我的kubernetes集群。将“my dashboard.com”添加到无代理列表后,我可以通过浏览器访问它
谢谢托马斯的指点 谢谢你。这是一个复制粘贴错误。但它仍然不起作用。我还添加了kubernetes.io/ingres.class:“nginx”。。。但是。。不工作我想你尝试访问
https://my-dash....
是的。我试过两种方法。那应该会给我一些东西,对吗?除非根路径没有默认页面……谢谢。这是一个复制粘贴错误。但它仍然不起作用。我还添加了kubernetes.io/ingres.class:“nginx”。。。但是。。不工作我想你尝试访问https://my-dash....
是的。我试过两种方法。那应该会给我一些东西,对吗?除非根路径中没有默认页面……当您试图访问仪表板时,什么意思是“什么都没有”nothing
?你能试着把它卷曲并粘贴输出吗?啊哈!这就是问题所在!在使用curl-v时,我可以看到请求实际上通过了公司代理。它根本没有到达库伯内特斯星系团。因此,我切换到Firefox,并将“my dashboard.com”添加到无代理列表中。现在我可以通过borwser访问它了。非常感谢你!!当你试图到达仪表板时,你什么意思?你能试着把它卷曲并粘贴输出吗?啊哈!这就是问题所在!在执行curl-v时,我可以看到请求实际上被执行了
PS D:\dev\kubernetes-dashboard-ingress> kubectl get service -n kubernetes-dashboard -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
dashboard-metrics-scraper ClusterIP 10.110.109.6 <none> 8000/TCP 135m k8s-app=dashboard-metrics-scraper
kubernetes-dashboard ClusterIP 10.110.230.166 <none> 443/TCP 135m k8s-app=kubernetes-dashboard
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: kubernetes-dashboard
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: "my-dashboard.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-dashboard # <<< This line should be kubernetes-dashboard
port:
number: 443