diff --git a/.vuepress/comp/CurrentVersionV3.vue b/.vuepress/comp/CurrentVersionV3.vue
new file mode 100644
index 0000000..e528def
--- /dev/null
+++ b/.vuepress/comp/CurrentVersionV3.vue
@@ -0,0 +1,50 @@
+
+
+ Kuboard 最新版本对照表
+
+
+
+
+
+
+
diff --git a/.vuepress/comp/index.js b/.vuepress/comp/index.js
index 0deaf7a..281558c 100644
--- a/.vuepress/comp/index.js
+++ b/.vuepress/comp/index.js
@@ -2,6 +2,7 @@ let components = [
{ name: 'LearningPlan', component: () => import(`./LearningPlan.vue`) },
{ name: 'Course', component: () => import(`./Course.vue`) },
{ name: 'CurrentVersion', component: () => import(`./CurrentVersion.vue`) },
+ { name: 'CurrentVersionV3', component: () => import(`./CurrentVersionV3.vue`) },
]
export default function (Vue) {
diff --git a/.vuepress/config-sidebar.js b/.vuepress/config-sidebar.js
index 77f922c..32c0a95 100644
--- a/.vuepress/config-sidebar.js
+++ b/.vuepress/config-sidebar.js
@@ -46,7 +46,25 @@ let sidebar = {
title: '安装 Kubernetes 管理工具',
collapsable: false,
children: [
- 'v3-install',
+ {
+ title: '安装 Kuboard v3',
+ collapsable: true,
+ children: [
+ 'v3/install-built-in',
+ 'v3/install-gitlab',
+ 'v3/install-github',
+ 'v3/install-ldap',
+ ]
+ },
+ {
+ title: '配置 Kuboard v3',
+ collapsable: true,
+ children: [
+ 'v3/proxy',
+ 'v3/tls',
+ 'v3-upgrade',
+ ]
+ },
'install-dashboard',
'install-dashboard-offline',
{
@@ -659,10 +677,12 @@ let sidebar = {
title: '更新说明',
collapsable: false,
children: [
+ 'change-log/v3.0.x',
'change-log/v2.0.x',
'change-log/v1.0.x',
+ 'change-log/upgrade-2-3',
'change-log/upgrade-1-2',
- 'change-log/upgrade-2-from-beta',
+ // 'change-log/upgrade-2-from-beta',
'known-issue',
]
}
diff --git a/install/v3-install.assets/image-20201108174801858.png b/install/v3-install.assets/image-20201108174801858.png
deleted file mode 100644
index b88703f..0000000
Binary files a/install/v3-install.assets/image-20201108174801858.png and /dev/null differ
diff --git a/install/v3-upgrade.md b/install/v3-upgrade.md
index 23193db..c085bc1 100644
--- a/install/v3-upgrade.md
+++ b/install/v3-upgrade.md
@@ -10,4 +10,28 @@ meta:
-本文描述了如何升级 Kuboard v3.x.x
+1. 停止已有 kuboard 容器
+
+ ``` sh
+ docker stop $(docker ps -a | grep "eipwork/kuboard" | awk '{print $1 }')
+ docker rm $(docker ps -a | grep "eipwork/kuboard" | awk '{print $1 }')
+ ```
+
+2. 使用新版本的镜像启动 kuboard
+
+ ``` sh {7}
+ sudo docker run -d \
+ --restart=unless-stopped \
+ -p 80:80/tcp \
+ -p 10081:10081/udp \
+ -p 10081:10081/tcp \
+ -v /root/kuboard-data:/data \
+ eipwork/kuboard:v3.0.0-alpha.2
+ ```
+
+ ::: danger 请注意
+ * 除了镜像标签之外,请确保命令行中所有其他参数与最初安装 Kuboard 时的参数一致;
+ * 从 kuboard-v3.0.0.alpha.1 升级过来的用户,命令行中第 3 行参数原本为 `-p 10080:10080/tcp`,请调整为 `-p 10080:80/tcp`,因为自 alpha.2 开始,容器内部将使用 80/443 作为 Web 服务的端口号;
+ * 调整为 `-p 10080:80/tcp` 后,您原有已导入到 Kubernetes 的集群仍可以正常访问;
+ * 如果您修改此处宿主机端口号,则需要您在 Kuboard 中删除已经导入了的 Kubernetes 集群,并重新导入。
+ :::
diff --git a/install/v3/install-built-in.assets/image-20201110231839543.png b/install/v3/install-built-in.assets/image-20201110231839543.png
new file mode 100644
index 0000000..163bccd
Binary files /dev/null and b/install/v3/install-built-in.assets/image-20201110231839543.png differ
diff --git a/install/v3-install.md b/install/v3/install-built-in.md
similarity index 70%
rename from install/v3-install.md
rename to install/v3/install-built-in.md
index 9d7a274..b021a08 100644
--- a/install/v3-install.md
+++ b/install/v3/install-built-in.md
@@ -6,7 +6,7 @@ meta:
content: Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装
---
-# 安装 Kuboard v3
+# 安装 Kuboard v3 - 内建用户库
@@ -35,22 +35,24 @@ Kuboard v3.0 不再部署在 Kubernetes 集群当中,而是以一个 docker
``` sh {6}
sudo docker run -d \
--restart=unless-stopped \
- -p 10080:10080/tcp \
- -p 10081:10081/tcp \
+ --name=kuboard \
+ -p 80:80/tcp \
-p 10081:10081/udp \
+ -p 10081:10081/tcp \
-v /root/kuboard-data:/data \
eipwork/kuboard:v3-alpha
```
::: tip Tips
+* 建议将此命令保存为一个 shell 脚本,例如 `start-kuboard.sh`,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;
* Kuboard v3.0 的持久化数据存储在 `/data` 目录,如安装指令的第六行所示,默认映射到了宿主机的 `/root/kuboard-data` 路径,请根据您自己的情况进行调整;
-* Kuboard v3.0 需要暴露 `10080` 端口,如安装指令的第三行所示,默认映射到了宿主机的 `10080` 端口,您可以根据自己的情况选择宿主机的其他端口;
+* Kuboard v3.0 需要暴露 `80` 端口,如安装指令的第三行所示,默认映射到了宿主机的 `80` 端口,您可以根据自己的情况选择宿主机的其他端口;
* Kuboard v3.0 需要暴露 `10081` 端口 TCP / UDP,如安装指令的第四、第五行所示,默认映射到了宿主机的 `10081` 端口,您可以根据自己的情况选择宿主机的其他端口;
:::
## 访问 Kuboard v3.0
-在浏览器输入 `http://your-host-ip:10080` 即可访问 Kuboard v3.0 的界面,登录方式:
+在浏览器输入 `http://your-host-ip` 即可访问 Kuboard v3.0 的界面,登录方式:
* 用户名: `admin`
* 密 码: `Kuboard123`
@@ -60,13 +62,13 @@ Kuboard 在添加被纳管的 Kubernetes 集群时,需要向集群中安装 Ku
| 参数名称 | 默认值 | 描述 |
| ----------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------ |
-| Kuboard UI 访问地址 |
http://your-host-ip:10080
| Kuboard Agent 访问 Kuboard web 时所使用的地址,必须映射到 Kuboard 的 `10080` 端口 |
+| Kuboard UI 访问地址 | http://your-host-ip:hostport
| Kuboard Agent 访问 Kuboard web 时所使用的地址及端口(此端口为 docker run 命令中映射到 Kuboard 容器 `80` 端口的宿主机端口,您可以自定义端口号,两处保持一致即可) |
| Kuboard Agent Server Host | your-host-ip | Kuboard Agent 访问 Kuboard Agent Server 时所使用的目标地址 |
-| Kuboard Agent Server UDP Port | 10081 | Kuboard Agent 可以使用 UDP 协议或者 TCP 协议连接 Kuboard Agent Server,二者选其一即可,必须映射到 Kuboard 的 `10081` 端口。
* *UDP 比 TCP 快 20%*;
* *TCP 可以使用 http 或 socks5 代理*;
不同的 Kubernetes 集群可以选择 UDP 或 TCP。 |
+| Kuboard Agent Server UDP Port | 10081 | Kuboard Agent 可以使用 UDP 协议或者 TCP 协议连接 Kuboard Agent Server,此端口为 docker run 命令中映射到 Kuboard 容器 `10081/udp` 端口的宿主机端口,您可以自定义端口号,两处保持一致即可。
* *UDP 比 TCP 快 20%*;
* *TCP 可以使用 http 或 socks5 代理*;
不同的 Kubernetes 集群可以选择 UDP 或 TCP。 |
| Kuboard Agent Server TCP Port | 10081 | 同上 |
-
+
diff --git a/install/v3/install-github.md b/install/v3/install-github.md
new file mode 100644
index 0000000..78f01cb
--- /dev/null
+++ b/install/v3/install-github.md
@@ -0,0 +1,22 @@
+---
+lessAds: false
+description: 一行命令开启Kubernetes多集群管理之路_Kuboard_V3安装
+meta:
+ - name: keywords
+ content: Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装
+---
+
+# 安装 Kuboard v3 - github
+
+
+
+Kuboard 支持多种认证方式:
+
+* 内建用户库
+* GitLab Community Edition / GitLab Enterprise Edition / gitlab.com
+* GitHub Enterprise / github.com
+* LDAP
+
+本文将要描述如何使用 GitHub 用户登录 Kuboard。
+
+预计在 kuboard v3.0.0-alpha.5 支持此认证方式。
diff --git a/install/v3/install-gitlab.md b/install/v3/install-gitlab.md
new file mode 100644
index 0000000..b76c37d
--- /dev/null
+++ b/install/v3/install-gitlab.md
@@ -0,0 +1,22 @@
+---
+lessAds: false
+description: 一行命令开启Kubernetes多集群管理之路_Kuboard_V3安装
+meta:
+ - name: keywords
+ content: Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装
+---
+
+# 安装 Kuboard v3 - gitlab
+
+
+
+Kuboard 支持多种认证方式:
+
+* 内建用户库
+* GitLab Community Edition / GitLab Enterprise Edition / gitlab.com
+* GitHub Enterprise / github.com
+* LDAP
+
+本文将要描述如何使用 GitLab 用户登录 Kuboard。
+
+预计在 kuboard v3.0.0-alpha.3 支持此认证方式。
diff --git a/install/v3/install-ldap.md b/install/v3/install-ldap.md
new file mode 100644
index 0000000..81a48b5
--- /dev/null
+++ b/install/v3/install-ldap.md
@@ -0,0 +1,22 @@
+---
+lessAds: false
+description: 一行命令开启Kubernetes多集群管理之路_Kuboard_V3安装
+meta:
+ - name: keywords
+ content: Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装
+---
+
+# 安装 Kuboard v3 - ldap
+
+
+
+Kuboard 支持多种认证方式:
+
+* 内建用户库
+* GitLab Community Edition / GitLab Enterprise Edition / gitlab.com
+* GitHub Enterprise / github.com
+* LDAP
+
+本文将要描述如何使用 LDAP 用户登录 Kuboard。
+
+预计在 kuboard v3.0.0-alpha.4 支持此认证方式。
diff --git a/install/v3/proxy.md b/install/v3/proxy.md
new file mode 100644
index 0000000..76dc70c
--- /dev/null
+++ b/install/v3/proxy.md
@@ -0,0 +1,57 @@
+---
+vssueId: 13
+lessAds: false
+description: Kuboard_是一款Kubernetes_Dashboard_快速在K8S上落地微服务_本文是Kuboard的安装手册_包括安装Kuboard的前提条件_与Kubernetes的版本兼容性_安装步骤_以及完成安装后如何访问Kuboard界面。
+meta:
+ - name: keywords
+ content: Kubernetes Dashboard安装,Kuboard安装,K8S Dashboard安装
+---
+
+# 通过反向代理访问 Kuboard
+
+
+
+
+## 配置反向代理时的注意事项
+
+在为 Kuboard 配置反向代理时,需要注意:
+* WebContextRoot
+ * Kuboard 需要使用根路径进行访问,即 https://yourkuboard.yourcompany.com/,而不能是 https://yourcompany.com/kuboard/ 这样的二级路径;
+* 启用 WebSocket
+ * Kuboard 中终端和日志的功能需要用到 WebSocket,需要在您的反向代理中配置 WebSocket,才能正常使用 Kuboard 的终端和日志功能;
+* PassHeader
+ * Kuboard v3 的 Portforward v3.0.0 功能需要用到 SPDY 协议,需要您的反向代理能够支持此协议,并将 Upgrade,Connection,Authorization 这几个 Header 传递给 Kuboard。
+
+## 配置样例
+
+### Nginx 配置
+
+如果您使用 nginx 作为反向代理,配置文件样例如下所示:
+
+``` nginx {7-9,14-16}
+server {
+ listen 80;
+ server_name kuboard.yourdomain.com; # 替换成你的域名
+ location / {
+ proxy_pass http://192.168.2.39:80; # 替换成你的宿主机地址
+ proxy_http_version 1.1;
+ proxy_pass_header Authorization;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ # proxy_set_header X-Forwarded-Proto https; # 如果您在反向代理上启用了 HTTPS
+ }
+ location /k8s-ws/ {
+ proxy_pass http://192.168.2.39:80; # 替换成你的宿主机地址
+ proxy_http_version 1.1;
+ proxy_pass_header Authorization;
+ proxy_set_header Upgrade "websocket";
+ proxy_set_header Connection "upgrade";
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ # proxy_set_header X-Forwarded-Proto https; # 如果您在反向代理上启用了 HTTPS
+ }
+ gzip on;
+}
+```
diff --git a/install/v3/tls.md b/install/v3/tls.md
new file mode 100644
index 0000000..57979a3
--- /dev/null
+++ b/install/v3/tls.md
@@ -0,0 +1,80 @@
+---
+lessAds: false
+description: 为 Kuboard v3 配置 TLS 证书
+meta:
+ - name: keywords
+ content: 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
+* 如果 [通过 nginx 反向代理访问 Kuboard](./v3-proxy.html),建议在 nginx 中配置 SSL 证书;
+* 如果您的 Kuboard 打算直接在公网上访问,建议使用 [Lets Encrypt](#lets-encrypt)
+:::
+
+启动命令如下所示:
+
+```sh {3-6,8}
+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 \
+ -v /root/kuboard-data:/data \
+ eipwork/kuboard:v3-alpha
+```
+
+其中:
+* 第 3 - 4 行,将证书的 crt 文件和 key 文件从宿主机映射到 Kuboard 容器的某一个路径;
+* 第 5 - 6 行,通过环境变量指定 Kuboard 使用该证书;
+* 第 8 行将 443 端口映射到宿主机的 443 端口。
+
+
+## Lets Encrypt
+
+Lets Encrypt 是一个开源免费的证书颁发机构,如果您直接在公网上访问 Kuboard,建议使用 Lets Encrypt 配置 SSL 证书。
+
+启动命令如下所示:
+
+```sh {3,4,6}
+sudo docker run -d \
+ --restart=unless-stopped \
+ -e KUBOARD_TLS_AUTOCERT=true \
+ -e KUBOARD_TLS_DOMAIN=kuboard.yourcompany.com \
+ -p 80:80/tcp \
+ -p 443:443/tcp \
+ -p 10081:10081/tcp \
+ -p 10081:10081/udp \
+ -v /root/kuboard-data:/data \
+ eipwork/kuboard:v3-alpha
+```
+
+其中:
+* 第 3 行激活 Kuboard 中的 Lets Encrypt 客户端;
+* 第 4 行指定 Lets Encrypt 颁发证书时对应的域名;
+* 第 6 行将 443 端口映射到宿主机的 443 端口。
+
+> 使用 Lets Encrypt 时,请将 `kuboard.yourcompany.com` 域名指向您的 Kuboard 所在宿主机的公网 IP,并且确保 80, 443 端口开放。Kuboard 启动后,在您第一次访问 `https://kuboard.yourcompany.com` 时,Lets Encrypt 将自动申请证书(浏览器上显示第一次访问将失败)。等候 1-5 分钟时间,再次访问 `https://kuboard.yourcompany.com` 时,您将能够成功访问,证书也已经颁发并且自动配置好;通常免费证书有效期是一年时间,证书到期前一个月,系统会自动为您更新证书,无需您额外做任何操作。
diff --git a/support/change-log/upgrade-2-3.md b/support/change-log/upgrade-2-3.md
new file mode 100644
index 0000000..521d570
--- /dev/null
+++ b/support/change-log/upgrade-2-3.md
@@ -0,0 +1,14 @@
+---
+vssueId: 72
+description: 本文描述了Kuboard_v3.0.x版本的升级方法
+---
+
+# 从 v2.0.x 升级到 v3.0.x
+
+与 v2.0.x 相比,v3.0.x 不再部署在 Kubernetes 中,而是作为一个独立的容器运行。
+
+* 由于运行模式不同,v2.0.x 与 v3.0.x 可以同时存在互不干扰。
+
+ 请参考 [安装 Kuboard v3](/install/v3-install.html)
+
+* Kuboard v3.0.x 计划将 Kuboard 部署的内容全部从 kube-system 名称空间迁移到 kuboard 名称空间,这也使得两个版本能够同时存在于同一个 Kubernetes 集群。建议用户在 Kuboard v3.0 版本正式发布后,将使用 Kuboard v2.0.x 安装的 Kuboard 套件卸载,并在 Kuboard v3.0.x 中重新安装这些套件。
diff --git a/support/change-log/v3.0.x.md b/support/change-log/v3.0.x.md
new file mode 100644
index 0000000..b258a7d
--- /dev/null
+++ b/support/change-log/v3.0.x.md
@@ -0,0 +1,53 @@
+---
+vssueId: 72
+description: 本文描述了Kuboard_v3.0.x的版本变更说明
+---
+
+# Kuboard v3.0.x
+
+
+
+
+
+
+
+Kuboard v3.0.x 的更新说明
+
+
+## v3.0.0-alpha.2
+
+**发布日期**
+
+2020年11月10日
+
+**新特性**
+* 支持 TLS 、 Lets Encrypts;
+
+**优化**
+
+* Web 服务使用标准端口 80 / 443
+* 点击后才弹出集群切换窗口,避免悬停弹出分散用户注意力;
+* 优化创建集群时的提示信息;
+
+**BUG修正**
+* 创建用户时,部分特殊电子信箱地址校验不通过;
+
+* 节点详情页,如果节点的容器组数量太多,不能显示该页面的问题;
+* CustomResourceList 页的链接错误;
+* User/Group 列表页的链接错误;
+
+
+## v3.0.0-alpha.1
+
+**发布日期**
+
+2020年11月8日
+
+**新特性**
+
+* 主版本升级,调整了 Kuboard 的架构:
+ * 支持多 Kubernetes 集群管理
+ * 内建用户库
+ * 优化导航栏及菜单的结构
+ * 不再部署在 Kubernetes 集群当中,而是作为一个独立的容器部署在集群之外
+ * 使用 golang 重写后端代码,不再使用 openresty lua
diff --git a/support/known-issue.md b/support/known-issue.md
index 81a0fa4..ece38ae 100644
--- a/support/known-issue.md
+++ b/support/known-issue.md
@@ -9,6 +9,8 @@ description: 本文描述了 Kuboard 的一些已知问题
Kuboard 自 v1.0.7 开始,使用 [OpenResty](https://hub.docker.com/r/openresty/openresty) 提供的基础镜像,该镜像存在的一个问题是:CPU 必须兼容 SSE4.2。这意味着,一部分 2007 年以前的 CPU 可能无法兼容。请参考 [https://github.com/openresty/docker-openresty/issues/39](https://github.com/openresty/docker-openresty/issues/39)
+> Kuboard v3.0.x 不再使用 OpenResty,因此也不存在此问题。
+
出现此问题时,通过 kubectl 命令查看 Kuboard 日志
``` sh
kubectl logs -f -l k8s.eip.work/name=kuboard -n kube-system