Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes仪表板和;Docker桌面上的入口_Kubernetes_Kubernetes Ingress_Nginx Ingress_Docker Desktop - Fatal编程技术网

Kubernetes仪表板和;Docker桌面上的入口

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

我正在尝试通过入口访问本地PC上的kubernetes仪表板。到目前为止,我已经完成了以下步骤:

  • 通过以下方式安装Nginx入口:
  • 当我检查kubernetes仪表板命名空间时,我注意到该服务正在端口443上运行:

    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