Files
kuboard-press/install/v3/tls.md
huanqing.shao 085a5ecffc v3.0.0-beta.1
2020-12-06 16:18:19 +08:00

3.6 KiB
Raw Blame History

lessAds, description, meta
lessAds description meta
false 为 Kuboard v3 配置 TLS 证书
name content
keywords Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装

SSL 证书

Kuboard v3 容器对外暴露三个端口:

  • 80 Kuboard Web 服务端口TCP
  • 443 Kuboard Web 服务端口TCP
  • 10081 Kuboard Agent Server 端口TCP 、 UDP。

其中Web 服务端口在如下两种情况下需要配置 SSL 证书:

  • 通过公网访问 Kuboard 界面,提高安全性;
  • 为被纳管的 Kubernetes 配置 OIDC与 Kuboard 实现单点登录(如不配置,通过 Kuboard 管理 Kubernetes 时Kubernetes 只能将用户识别成 kuboard-admin 或者 kuboard-user 这两个 ServiceAccount 当中的一个)

Kuboard Agent Server 端口使用 TCP、UDP 通信,是私有协议,已经自动配置了 TLS 加密连接,无需用户额外配置证书;此外,该端口只提供给安装到 Kubernetes 集群中的 Kuboard Agent 访问,无需暴露到公网。

Certificates

您可以加载 SSL 证书到 Kuboard 容器中,并且配置好证书对应的路径以支持 HTTPS 访问;

::: tip Tips

启动命令如下所示:

sudo docker run -d \
  --restart=unless-stopped \
  -v /hostpath/to/your/server.crt:/etc/certs/my.company.com/server.crt \
  -v /hostpath/to/your/server.key:/etc/certs/my.company.com/server.key \
  -e KUBOARD_TLS_CERT=/etc/certs/my.company.com/server.crt \
  -e KUBOARD_TLS_KEY=/etc/certs/my.company.com/server.key \
  -p 80:80/tcp \
  -p 443:443/tcp \
  -p 10081:10081/tcp \
  -p 10081:10081/udp \
  -e KUBOARD_ENDPOINT="http://kuboard.mycompany.com" \
  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3-beta

其中:

  • 第 3 - 4 行,将证书的 crt 文件和 key 文件从宿主机映射到 Kuboard 容器的某一个路径;
  • 第 5 - 6 行,通过环境变量指定 Kuboard 使用该证书;
  • 其他参数请参考 安装 Kuboard v3

Lets Encrypt

Lets Encrypt 是一个开源免费的证书颁发机构,如果您直接在公网上访问 Kuboard建议使用 Lets Encrypt 配置 SSL 证书。

启动命令如下所示:

sudo docker run -d \
  --restart=unless-stopped \
  -p 80:80/tcp \
  -p 443:443/tcp \
  -p 10081:10081/tcp \
  -p 10081:10081/udp \
  -e KUBOARD_TLS_AUTOCERT=true \
  -e KUBOARD_TLS_DOMAIN=kuboard.mycompany.com \
  -e KUBOARD_ENDPOINT="http://kuboard.mycompany.com" \
  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /root/kuboard-data:/data \
  eipwork/kuboard:v3-beta

其中:

  • 第 4 行将 443 端口映射到宿主机的 443 端口。
  • 第 7 行激活 Kuboard 中的 Lets Encrypt 客户端;
  • 第 8 行指定 Lets Encrypt 颁发证书时对应的域名;

使用 Lets Encrypt 时,请将 kuboard.mycompany.com 域名指向您的 Kuboard 所在宿主机的公网 IP并且确保 80, 443 端口开放。Kuboard 启动后,在您第一次访问 https://kuboard.mycompany.comLets Encrypt 将自动申请证书(浏览器上显示第一次访问将失败)。等候 1-5 分钟时间,再次访问 https://kuboard.mycompany.com 时,您将能够成功访问,证书也已经颁发并且自动配置好;通常免费证书有效期是一年时间,证书到期前一个月,系统会自动为您更新证书,无需您额外做任何操作。