首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置kuberenetes仪表板

设置kuberenetes仪表板
EN

Stack Overflow用户
提问于 2021-04-27 16:36:59
回答 1查看 51关注 0票数 0

我正在尝试使用裸机设置Kubernetes,并且我已经在默认名称空间中部署了我的Nginx,并且我正在尝试创建一个虚拟服务器来路由仪表板。但是,当我尝试访问URL时,它将我引导到错误404,并且当我从pod查看日志时,它似乎有一个损坏的标头。我遇到了kubernetes/ingress-nginx#3996,他们给出了添加代理协议的建议,如果我将下面的代码片段添加到我的配置映射中,其他路由将失败。

代码语言:javascript
复制
proxy-protocol: "True"
real-ip-header: "proxy_protocol"
set-real-ip-from: "0.0.0.0/0"

日志:

代码语言:javascript
复制
2021/04/27 07:43:28 [error] 145#145: *155 broken header: "▬♥☺☻☺☺�♥♥�#�↓�|��-�B�d�s�HZ��]!��↨��☻ O|����%���o�/k��R       ��¶�u�♂����VI"��‼☺‼☻‼♥�+�/�,�0̨̩�‼�¶��/" while reading PROXY protocol, client: 192.168.254.9, server: 0.0.0.0:443  

nginx-config-map.yaml

代码语言:javascript
复制
kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-ingress-cm
  namespace: default
data:
  http2: "true"
  ssl-protocols: TLSv1.2 TLSv1.3
  ssl-prefer-server-ciphers: "true"
  ssl-ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM- 
  SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
  set-real-ip-from: 0.0.0.0/0
  real-ip-header: X-Forwarded-For
  server-snippets: |
    proxy_hide_header Strict-Transport-Security;
    add_header Strict-Transport-Security "max-age=31536000" always;

有没有暗示我做错了什么?提前谢谢。

添加服务yaml,对于仪表板,我使用的是源代码中推荐的设置(dashboard.yaml)。nginx-入口-服务

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-svc
  namespace: default
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: HTTP
  - port: 443
    targetPort: 443
    protocol: TCP
    name: https
  selector:
    app: nginx-ingress

用于dashboard.yaml的虚拟服务器

代码语言:javascript
复制
apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: kubernetes-dashboard-vs
  namespace: kubernetes-dashboard
spec:
  host: k8.moonshot.com
  tls:
    secret: nginx-tls-secret
    redirect:
      enable: true
      code: 301
  upstreams:
  - name: kubernetes-dashboard
    service: kubernetes-dashboard
    port: 443
  routes:
  - path: /
    action:
      pass: kubernetes-dashboard
EN

回答 1

Stack Overflow用户

发布于 2021-04-28 08:56:14

我已经发布了issue on the github repository,并设法修复了它。

社区成员建议的解决方案是:

400响应代码是因为NGINX向仪表板上的HTTPs端口发送了HTTPs请求。要解决这个问题,有必要在NGINX和仪表板之间启用HTTPs。

Virtualserver yaml必须更新为以下内容:

代码语言:javascript
复制
  - name: kubernetes-dashboard
    service: kubernetes-dashboard
    port: 443
    tls:
      enable: true

此示例适用于裸机kubernetes

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67279646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档