Files
kuboard-press/install/reverse-proxy.md
2020-06-21 23:33:29 +08:00

3.6 KiB
Raw Blame History

vssueId, lessAds, description, meta
vssueId lessAds description meta
13 false Kuboard_是一款Kubernetes_Dashboard_快速在K8S上落地微服务_本文是Kuboard的安装手册_包括安装Kuboard的前提条件_与Kubernetes的版本兼容性_安装步骤_以及完成安装后如何访问Kuboard界面。
name content
keywords Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装

通过反向代理访问 Kuboard

为何使用反向代理

为了方便用户能够快速地了解和测试 KuboardKuboard 使用了 http 协议,在生产环境中,为了获得更强的安全性,请务必为 Kuboard 配置 HTTPS。最便捷的方式是使用 Kubernetes Ingress 进行配置并启用 HTTPS用户也可以使用自己配置的 Nginx 将请求反向代理到 Kuboard在 Nginx 上配置 HTTPS。

配置反向代理时的注意事项

在为 Kuboard 配置反向代理时,需要注意:

  • WebContextRoot
  • 启用 WebSocket
    • Kuboard 中终端和日志的功能需要用到 WebSocket需要在您的反向代理中配置 WebSocket才能正常使用 Kuboard 的终端和日志功能;
  • PassHeader
    • Kuboard 的 Portforward v2.0.1 功能需要用到 SPDY 协议,需要您的反向代理能够支持此协议,并将 Upgrade,Connection,Authorization 这几个 Header 传递给 Kuboard。

配置样例

Ingress 配置

本章节假设您使用 nginx-ingress 作为您的 Ingress Controller其他类型的 Ingress 控制器(如 traefikingress-nginx 等)请自行参考其官方文档,了解如何启用 WebSocket 并配置 PassHeader

  • 第 9 行,通过 nginx.org/proxy-pass-headers 设置 PassHeader
  • 第 10 行,为 kuboard Service 开启 WebSocket
  • 第 29 行,将 Web 的根路径映射到 kuboard
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    k8s.eip.work/displayName: kuboard
    k8s.eip.work/workload: kuboard
    nginx.com/sticky-cookie-services: serviceName=kuboard srv_id expires=1h path=/
    nginx.org/proxy-pass-headers: 'Upgrade,Connection,Authorization'
    nginx.org/websocket-services: kuboard
  creationTimestamp: '2020-03-21T01:35:08Z'
  generation: 3
  labels:
    k8s.eip.work/layer: monitor
    k8s.eip.work/name: kuboard
  name: kuboard
  namespace: kube-system
  resourceVersion: '25838555'
  selfLink: /apis/networking.k8s.io/v1beta1/namespaces/kube-system/ingresses/kuboard
  uid: b7903125-9a95-4562-b45a-b506359b5c19
spec:
  rules:
    - host: demo.kuboard.cn
      http:
        paths:
          - backend:
              serviceName: kuboard
              servicePort: http
            path: /
  tls:
    - hosts:
        - demo.kuboard.cn
      secretName: demo.kuboard.cn

Nginx 配置

如果您使用 nginx 作为反向代理,配置文件样例如下所示:

server {
  listen  80;
  server_name kuboard.yourdomain.com;   # 替换成你的域名
  location / {
    proxy_pass  http://192.168.2.39:32567;  # 替换成你的节点地址
    proxy_http_version 1.1;
    proxy_pass_header Authorization;
    proxy_pass_header Upgrade;
    proxy_pass_header Connection;
  }
  location /k8s-ws/ {
    proxy_pass  http://192.168.2.39:32567;  # 替换成你的节点地址
    proxy_http_version 1.1;
    proxy_pass_header Authorization;
    proxy_set_header Upgrade "websocket";
    proxy_set_header Connection "upgrade";
  }
  gzip on;
}