v1.0.3-beta.2
This commit is contained in:
@ -19,7 +19,7 @@
|
||||
<div style="margin-bottom: 10px;">github star 后,本窗口将不再弹出</div> -->
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="waitAMoment">一会儿再说</el-button>
|
||||
<el-button @click="reset">一会儿再说</el-button>
|
||||
<el-button type="primary" @click="gotoStar">够义气,现在就去!</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
@ -28,8 +28,9 @@
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import 'element-ui/lib/theme-chalk/index.css';
|
||||
import { Dialog, Button } from 'element-ui';
|
||||
import 'element-ui/lib/theme-chalk/index.css'
|
||||
import { Dialog, Button } from 'element-ui'
|
||||
import { differenceInMinutes } from 'date-fns'
|
||||
|
||||
Vue.component(Dialog.name, Dialog)
|
||||
Vue.component(Button.name, Button)
|
||||
@ -41,24 +42,63 @@ export default {
|
||||
};
|
||||
},
|
||||
mounted () {
|
||||
this.waitAMoment()
|
||||
if (localStorage.getItem('stared') === 'true') {
|
||||
console.log('已经去过 GITHUB')
|
||||
return
|
||||
}
|
||||
setInterval(this.checkDuration, 10000)
|
||||
},
|
||||
methods: {
|
||||
waitAMoment() {
|
||||
this.dialogVisible = false
|
||||
checkDuration() {
|
||||
let firstAccess = localStorage.getItem('FIRST_ACCESS')
|
||||
// console.log(new Date(), new Date(firstAccess))
|
||||
if (!firstAccess) {
|
||||
console.log('FIRST_ACCESS', new Date())
|
||||
localStorage.setItem('FIRST_ACCESS', new Date())
|
||||
} else {
|
||||
// console.log('differenceInMinutes', differenceInMinutes(new Date(), new Date(firstAccess)))
|
||||
if (differenceInMinutes(new Date(), new Date(firstAccess)) >= 10 && !this.dialogVisible) {
|
||||
this.show()
|
||||
}
|
||||
}
|
||||
},
|
||||
show () {
|
||||
this.dialogVisible = true
|
||||
if (localStorage.getItem('stared') === 'true') {
|
||||
console.log('已经去过 GITHUB')
|
||||
return
|
||||
}
|
||||
let _this = this
|
||||
setTimeout(_ => {
|
||||
_this.dialogVisible = true
|
||||
// }, 10000)
|
||||
}, 60000 * 2)
|
||||
if (window.ga) {
|
||||
window.ga('send', {
|
||||
hitType: 'event',
|
||||
eventCategory: 'StarGazer',
|
||||
eventAction: 'Show',
|
||||
eventLabel: '显示 StarGazer'
|
||||
});
|
||||
console.log('发送成功 ga event')
|
||||
} else {
|
||||
console.log('开发环境,不发送 ga event')
|
||||
}
|
||||
},
|
||||
reset () {
|
||||
localStorage.removeItem('FIRST_ACCESS')
|
||||
this.dialogVisible = false
|
||||
},
|
||||
gotoStar() {
|
||||
this.dialogVisible = false
|
||||
window.open('https://github.com/eip-work/kuboard-press')
|
||||
localStorage.setItem('stared', 'true')
|
||||
if (window.ga) {
|
||||
window.ga('send', {
|
||||
hitType: 'event',
|
||||
eventCategory: 'StarGazer',
|
||||
eventAction: 'Click',
|
||||
eventLabel: '前往 github'
|
||||
});
|
||||
console.log('发送成功 ga event')
|
||||
} else {
|
||||
console.log('开发环境,不发送 ga event')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
let dateFns = require('date-fns')
|
||||
|
||||
module.exports = {
|
||||
title: 'Kuboard - Kubernetes k8s 安装/部署/入门/免费教程/实践/微服务管理界面',
|
||||
description: '一个非常 cool 的 Kubernetes Dashboard,简化 Kubernetes 的学习和使用,帮助您快速落地 Kubernetes;同时提供 Spring Cloud 微服务部署教程,DevOps教程',
|
||||
title: 'Kuboard - Kubernetes k8s 国内安装/部署/入门/免费中文教程/实践/微服务管理界面',
|
||||
description: '一个非常 cool 的 Kubernetes Dashboard,简化 Kubernetes 的学习和使用,帮助您快速落地 Kubernetes;提供 Kubernetes 免费中文教程、国内安装文档',
|
||||
head: [
|
||||
['meta', {name: 'keywords', content: 'Kubernetes, Docker, Dashboard, Kuboard, Spring Cloud, micro service, DevOps, 微服务, 持续构建集成, 容器, Kubernetes 教程, Kubernetes 入门, K8S 教程, K8S 入门, 微服务实践, Kubernetes 安装, K8S 安装, Kubernetes 安装, Kubernetes 部署'}],
|
||||
['meta', {name: 'keywords', content: 'Kubernetes, Docker, Dashboard, Kuboard, Spring Cloud, micro service, DevOps, 微服务, 持续构建集成, Kubernetes 中文教程, Kubernetes 入门, K8S 教程, K8S 入门, 微服务实践, Kubernetes 国内安装, K8S 安装, Kubernetes 安装, Kubernetes 部署'}],
|
||||
['script', {}, `
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
User-agent: *
|
||||
Allow: /
|
||||
@ -2,23 +2,34 @@
|
||||
<header class="navbar">
|
||||
<SidebarButton @toggle-sidebar="$emit('toggle-sidebar')"/>
|
||||
|
||||
<router-link
|
||||
:to="$localePath"
|
||||
class="home-link"
|
||||
>
|
||||
<img
|
||||
class="logo"
|
||||
v-if="$site.themeConfig.logo"
|
||||
:src="$withBase($site.themeConfig.logo)"
|
||||
:alt="$siteTitle"
|
||||
<div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; max-width: calc(100vw - 120px);">
|
||||
<router-link
|
||||
:to="$localePath"
|
||||
class="home-link noselect"
|
||||
>
|
||||
<span
|
||||
ref="siteName"
|
||||
class="site-name"
|
||||
v-if="$siteTitle"
|
||||
:class="{ 'can-hide': $site.themeConfig.logo }"
|
||||
>Kuboard</span>
|
||||
</router-link>
|
||||
<img
|
||||
class="logo"
|
||||
v-if="$site.themeConfig.logo"
|
||||
:src="$withBase($site.themeConfig.logo)"
|
||||
:alt="$siteTitle"
|
||||
>
|
||||
<span
|
||||
ref="siteName"
|
||||
class="site-name"
|
||||
v-if="$siteTitle"
|
||||
:class="{ 'can-hide': $site.themeConfig.logo }"
|
||||
>Kuboard - </span>
|
||||
</router-link>
|
||||
<span class="home-link noselect" style="line-height: 2.2em; font-size: 1em; font-weight: 400;">
|
||||
<a href="/learning/">
|
||||
<span style="color: #42b983;">提供K8S免费教程</span>
|
||||
</a>
|
||||
<span style="color: #2c3e50;">|</span>
|
||||
<a href="/support/#%E5%BE%AE%E6%9C%8D%E5%8A%A1%E8%90%BD%E5%9C%B0%E5%92%A8%E8%AF%A2">
|
||||
<span style="color: #007af5;">微服务落地咨询</span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="links"
|
||||
|
||||
@ -6,11 +6,11 @@ description: 详细介绍如何将 Kuboard 升级到最新版本。
|
||||
|
||||
## 最新版本
|
||||
|
||||
稳定版: latest, v1.0.1
|
||||
发布日期: 2019-08-20
|
||||
稳定版: latest, v1.0.2
|
||||
发布日期: 2019-09-01
|
||||
|
||||
测试版: v1.0.2-beta.5
|
||||
发布日期: 2019-08-29
|
||||
测试版: v1.0.3-beta.2
|
||||
发布日期: 2019-09-15
|
||||
|
||||
[查看更新日志](/overview/change-log.html)
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
---
|
||||
layout: LearningLayout
|
||||
description: Kubernetes 免费教程
|
||||
description: Kubernetes 免费中文教程
|
||||
---
|
||||
|
||||
# Kubernetes 免费教程
|
||||
# Kubernetes 免费中文教程
|
||||
|
||||
本教程的主要依据是:Kubernetes 官网文档,以及使用 Kubernetes 落地 Spring Cloud 微服务并投产的实战经验。适用人群:
|
||||
* Kubernetes 初学者
|
||||
|
||||
@ -110,6 +110,9 @@ Kuboard 暂不支持 -->
|
||||
|
||||
restartPolicy 将作用于 Pod 中的所有容器。kubelete 将在五分钟内,按照递延的时间间隔(10s, 20s, 40s ......)尝试重启已退出的容器,并在十分钟后再次启动这个循环,直到容器成功启动,或者 Pod 被删除。
|
||||
|
||||
::: tip
|
||||
控制器 Deployment/StatefulSet/DaemonSet 中,只支持 Always 这一个选项,不支持 OnFailure 和 Never 选项。
|
||||
:::
|
||||
|
||||
## 容器组的存活期
|
||||
|
||||
|
||||
28
overview/kuboard-vs-kubectl.md
Normal file
28
overview/kuboard-vs-kubectl.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
description: 为什么要使用 kuboard,而不是直接使用 kubectl?
|
||||
---
|
||||
|
||||
# 为什么要使用 Kuboard,而不是直接用 kubectl
|
||||
|
||||
## Kuboard v.s. kubectl
|
||||
|
||||
Kuboard 有如下优势:
|
||||
* 无需编写 YAML 文件
|
||||
* 轻松支持多环境管理
|
||||
* 纯图形化使用
|
||||
|
||||
Kuboard 有如下限制:
|
||||
* 并不能 100% 覆盖 kubectl 的功能
|
||||
* 当前不支持 istio
|
||||
* 当前不支持某些不常用配置(Bare Pod/ReplicaSet/ReplicationController/TTL Controller 等)
|
||||
* 要求 Workload (Deployment/StatefulSet/DaemonSet)、Service、Ingress 的 `.metadata.name` 相同
|
||||
|
||||
## Kuboard 是一个非常优秀的解决方案
|
||||
|
||||
Kuboard + Kubernetes 已经在许多项目中成功交付投产了 Spring Cloud / Dubbo 等微服务架构。
|
||||
|
||||
### 技术人员的考量
|
||||
|
||||
|
||||
|
||||
### 项目管理者的考量
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@ -3262,7 +3262,7 @@
|
||||
},
|
||||
"date-fns": {
|
||||
"version": "1.30.1",
|
||||
"resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz",
|
||||
"resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1568330251089&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz",
|
||||
"integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=",
|
||||
"dev": true
|
||||
},
|
||||
|
||||
@ -1,22 +1,9 @@
|
||||
## v1.0.3-beta.2
|
||||
|
||||
**发布日期**
|
||||
|
||||
**新特性**
|
||||
|
||||
|
||||
**BUG 修复**
|
||||
|
||||
* 导入应用程序时,NodePort 的值丢失
|
||||
* 导出应用程序时,环境变量-容器组信息丢失
|
||||
|
||||
|
||||
* 存储卷声明去掉分配模式的字段
|
||||
* 存储卷声明增加 Volume Modes 字段
|
||||
* 存储卷声明将 读写模式 修改为 Access Modes
|
||||
* 删除容器组时 - graceful period
|
||||
* Pod Conditions: lastProbeTime/reason/message
|
||||
* Pod restartPolicy
|
||||
* 初始化容器不支持就绪检查
|
||||
* Service 配置里,一部分 端口用 NodePort, 一部分端口用 ClusterIP
|
||||
* 互联网访问入口,增加文档的链接
|
||||
* 按名称空间查看 Events
|
||||
* 显示 Deployment/StatefulSet/DaemonSet 的事件
|
||||
* 控制台/日志界面,按 名称空间/工作负载/Pod/容器 进行切换
|
||||
|
||||
@ -6,6 +6,37 @@ description: 本文描述了 Kuboard v1.0.x 的版本变更说明
|
||||
|
||||
Kuboard v1.0.x 的更新说明
|
||||
|
||||
## v1.0.3-beta.2
|
||||
|
||||
**发布日期**
|
||||
|
||||
2019年9月15日
|
||||
|
||||
**新特性**
|
||||
* Pod,显示重启策略 restartPolicy
|
||||
* 工作负载编辑器 --> 容器组,可选择重启策略(只能选 Always)
|
||||
|
||||
**优化**
|
||||
* 导入应用程序时,可调整 NodePort(上一个版本中,为了避免在同一个集群导入时出现NodePort冲突,直接忽略了源文件中的 NodePort)
|
||||
* 工作负载编辑器 --> 数据卷,增加帮助链接
|
||||
* 工作负载编辑器 --> Ingress,增加帮助链接
|
||||
* 工作负载编辑器 --> Ingress,域名和路由配置为必填字段
|
||||
* 工作负载编辑器 --> 初始化容器,增加帮助链接
|
||||
* 工作负载编辑器 --> 初始化容器,不显示就绪检查
|
||||
* 工作负载编辑器 --> 资源限制,增加帮助链接
|
||||
* 工作负载编辑器 --> 容器 --> 存活检查/就绪检查,增加帮助链接
|
||||
* 工作负载编辑器 --> Docker 仓库的用户名密码,增加帮助链接
|
||||
* 工作负载编辑器 --> 节点选择,增加帮助链接
|
||||
* 工作负载编辑器 --> 服务描述,可以不填写
|
||||
* 存储卷声明,增加 Volume Modes 字段(只读)
|
||||
* 存储卷声明,增加 Volume Name 字段(只读)
|
||||
|
||||
|
||||
**BUG 修复**
|
||||
|
||||
* 导入工作负载 --> Ingress页,域名字段 '--必须修改域名--' 不应该出现多次
|
||||
|
||||
|
||||
## v1.0.3-beta.1
|
||||
|
||||
**发布日期**
|
||||
|
||||
BIN
support/consulting.png
Normal file
BIN
support/consulting.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 410 KiB |
@ -7,13 +7,13 @@ description: 本文描述了如何获得 Kuboard 授权
|
||||
## Kuboard 授权声明
|
||||
|
||||
* 使用 Kuboard 是免费的,无论您是用于学习还是用于生产
|
||||
* 将来可能会推出 Kuboard Plus,当前所有的功能,将来仍然免费。Kuboard Plus 侧重点:
|
||||
* 将来会推出 Kuboard Plus,当前所有的功能,将来仍然免费。Kuboard Plus 侧重点:
|
||||
* 更完善的权限管理(当前只区分集群管理员权限和只读权限)
|
||||
* 审计日志
|
||||
|
||||
## Kuboard 支持
|
||||
|
||||
### 免费支持
|
||||
### QQ社群支持
|
||||
|
||||
<p>
|
||||
<Qq/>
|
||||
@ -22,11 +22,11 @@ description: 本文描述了如何获得 Kuboard 授权
|
||||
<img src="/images/kuboard_qq.png" />
|
||||
</p>
|
||||
|
||||
### 承诺24小时内答复
|
||||
### 微信即时答复
|
||||
|
||||
* 微信群聊里的问题,通常可立刻答复,并承诺2小时内给出解答
|
||||
* 可提供 TeamViewer 远程协助
|
||||
<div>
|
||||
<div style="margin-top: 10px;">微信群聊里的问题,承诺 24 小时答复</div>
|
||||
<div style="margin-top: 10px;">未打赏用户可进 QQ 群聊,<span style="color: red;">打赏用户可进微信群聊</span>。</div>
|
||||
<div style="margin-top: 10px;">
|
||||
<span>扫第一个二维码完成打赏,扫第二个进微信群聊。</span>
|
||||
<p style="margin-top: 10px;">
|
||||
@ -38,6 +38,13 @@ description: 本文描述了如何获得 Kuboard 授权
|
||||
|
||||
### 微服务落地咨询
|
||||
|
||||
Kuboard 团队提供微服务实施落地的全过程咨询和实施,服务范围:
|
||||
<p>
|
||||
<img src="./consulting.png">
|
||||
</p>
|
||||
|
||||
如有需要请加微信:
|
||||
|
||||
<p>
|
||||
<img src="/images/dz2.jpeg" style="width: 200px;"></img>
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user