机器人

This commit is contained in:
huanqing.shao
2019-10-25 21:00:45 +08:00
parent 05c2ab2867
commit 227c5b78ff
19 changed files with 693 additions and 606 deletions

View File

@ -1,15 +1,7 @@
<template> <template>
<div :style="$isDev ? 'background-color: #grey;' : ''" v-if="!$frontmatter.lessAds && $themeConfig.showAds"> <div :style="$isDev ? 'background-color: #grey;' : ''" v-if="!$frontmatter.lessAds && $themeConfig.showAds">
<div class="ads"> <div class="ads">
<!-- <Qq></Qq>
群号: 808894550
<span style="color: red; font-weight: 500;">在线答疑</span>
初学者可选择在线课程语言更通俗
<span @click="$sendGaEvent('极客时间', '极客时间', '极客时间:' + $page.path)">
<a target="_blank" href="https://time.geekbang.org/column/intro/100015201?code=MH1Wu456g0ZsrKtQI7QidivKV2hVvzerAUxDz5pOuQs%3D">深入剖析Kubernetes</a>
</span> -->
<div> <div>
<a @click="clickAds" :href="random.url" target="_blank" rel="nofollow" style="text-decoration: none;"> <a @click="clickAds" :href="random.url" target="_blank" rel="nofollow" style="text-decoration: none;">
<span class="name"> <span class="name">
{{ random.name }} {{ random.name }}
@ -47,40 +39,7 @@
export default { export default {
data () { data () {
return { return {
ads: [ ads: require('./ad-list')
{
name: 'Sealyun',
description: 'Kubernetes',
strong: '一键离线安装',
action: '去看看',
url: 'http://store.lameleg.com?referrer=shaohq',
weight: 20
},
{
name: '阳明的博客',
description: 'Kubernetes',
strong: '实战课程',
action: '去看看',
url: 'https://www.qikqiak.com/post/promotion-51/',
weight: 50
},
{
name: '极客时间',
description: '精要30计让DevOps快速落地',
strong: 'DevOps实战笔记',
action: '去看看',
url: 'https://time.geekbang.org/column/intro/100036601?code=0Totv3yN%2FohiumTclUF4ky4qRYs9Ecq6ZK4IdgNf88M%3D',
weight: 30
},
// {
// name: '宝塔面板',
// description: '一键全能 Linux 部署及管理,',
// strong: '送你3188元礼包',
// action: '点我领取',
// url: 'https://www.bt.cn/?invite_code=MV9vdnlveno=',
// weight: 50
// }
]
} }
}, },
computed: { computed: {
@ -138,7 +97,7 @@ export default {
.ads span.description-strong { .ads span.description-strong {
font-size: 0.9em; font-size: 0.9em;
color: red; color: red;
font-weight: normal; font-weight: 500;
} }
.ads span.action { .ads span.action {
font-size: 0.75em; font-size: 0.75em;

View File

@ -1,5 +1,5 @@
<template> <template>
<div> <div style="border: solid 1px #E6A23C; background-color: rgb(253, 246, 236); padding: 1rem;">
<div v-show="!envOk" key="not"> <div v-show="!envOk" key="not">
<grid :rwd="{compact: 'stack'}"> <grid :rwd="{compact: 'stack'}">

View File

@ -0,0 +1,88 @@
<template>
<div style="border: solid 1px #E6A23C; background-color: rgb(253, 246, 236); padding: 1rem;">
<div v-show="!authorized" key="not">
<p style="color: red">请扫描二维码加微信后获得授权码显示完整文档需分享朋友圈</p>
<p>全站只在此一处需要输入验证码</p>
<grid :rwd="{compact: 'stack'}">
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}" style="padding: 0rem 0 1rem 1rem;">
<div>
<p>
<img src="/images/dz2.jpeg" style="width: 180px;"></img>
</p>
</div>
</grid-item>
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}" style="padding: 1rem 1rem 1rem 1rem;">
<div style="display: inline-block; width: 480px; max-width: calc(100% - 2rem); overflow: hidden; line-height: 40px; background-color: rgba(255,229,100,0.3); padding: 1rem; margin-bottom: 20px; border: 1px solid #d7dae2;">
<p>发送给Kuboard <el-tag size="medium" effect="dark">{{code1}}{{code2}}</el-tag></p>
<el-form ref="envForm" style="text-align: left;" label-width="80px">
<!-- <el-form-item label="发给Kuboard">
{{code}}
</el-form-item> -->
<el-form-item prop="checked" class="env-form-item" label="验证码:">
<el-input placeholder="Kuboard返回的查看码" v-model.number="authCode"></el-input>
</el-form-item>
</el-form>
</div>
</grid-item>
</grid>
</div>
<!-- <el-collapse-transition> -->
<div v-show="authorized" key="ok">
<!-- <el-button style="margin-top: 10px;" @click="review" type="text">再看看我是否符合安装条件</el-button> -->
<el-alert
title="已为您显示完整文档,感谢配合。"
description="缓存清空后需重新获得验证码"
effect="dark"
type="success">
</el-alert>
<slot></slot>
</div>
<!-- </el-collapse-transition> -->
</div>
</template>
<script>
export default {
data () {
let a = false
if (typeof window !== 'undefined') {
a = localStorage.getItem('SharingBlockValidated')
}
let c2 = parseInt(Math.random() * 10)
if (c2 === 0) {
c2 = 1
}
return {
authorized: a,
code1: parseInt(Math.random() * 100),
code2: c2,
authCode: undefined
}
},
watch: {
authCode () {
if (this.authCode === this.code1 + this.code2) {
this.authorized = true
if (typeof window !== 'undefined') {
localStorage.setItem('SharingBlockValidated', 'true')
}
this.$sendGaEvent('文档验证码', '文档验证码' + this.$page.path, '文档验证码' + this.$title)
}
}
},
methods: {
validate () {
}
}
}
</script>
<style>
</style>

View File

@ -1,20 +1,19 @@
<template> <template>
<div> <div>
<el-dialog <el-dialog
title="催更利器" title="感谢阅读"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="60%" width="60%"
:before-close="handleClose" :before-close="handleClose"
:append-to-body ="true"> :append-to-body ="true">
<div style="text-align: center; font-size: 18px; weight: 500;"> <div style="text-align: center; font-size: 18px; weight: 500;">
<div style="background-color: #f8f8f8; padding: 10px 10px 10px 10px; margin-bottom: 10px; border: solid 1px #ddd;"> <div style="background-color: rgb(236, 245, 255); padding: 10px 10px 10px 10px; margin-bottom: 10px; border: solid 1px #007af5;">
鼓励作者尽快完成 Kubernetes 教程
<span style="color: red; font-weight: 500;">剩下的 {{$themeConfig.incompleteRatio}}% </span>
所以我要
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar"> <a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar">
给一个 Github Star 给一个 Github Star
<OutboundLink/> <OutboundLink/>
</a> </a>
就可以鼓励作者尽快完成
<span style="color: red; font-weight: 500;">剩下的 {{$themeConfig.incompleteRatio}}% </span>
</div> </div>
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar"> <a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar">
<div style="border: solid 1px #ddd;"> <div style="border: solid 1px #ddd;">
@ -107,24 +106,8 @@ export default {
localStorage.setItem('stared', 'true') localStorage.setItem('stared', 'true')
this.$sendGaEvent('StarGazer', 'SG:GotoGithub', 'SG:前往github' + this.$page.path) this.$sendGaEvent('StarGazer', 'SG:GotoGithub', 'SG:前往github' + this.$page.path)
}, },
gotoStar() {
this.dialogVisible = false
localStorage.setItem('stared', 'true')
window.open('https://github.com/eip-work/kuboard-press')
if (window.ga) {
window.ga('send', {
hitType: 'event',
eventCategory: 'StarGazer',
eventAction: 'SG:GotoGithub',
eventLabel: 'SG:前往github'
});
console.log('发送成功 ga event')
} else {
console.log('开发环境,不发送 ga event')
}
},
handleClose (done) { handleClose (done) {
this.$message.success('Kuboard及文档是免费提供的') this.$message.success('Kuboard及Kubernetes教程都是免费提供的请给一个 github star 以示鼓励')
if (window.ga) { if (window.ga) {
window.ga('send', { window.ga('send', {
hitType: 'event', hitType: 'event',

View File

@ -0,0 +1,34 @@
module.exports = [
{
name: 'Sealyun',
description: 'Kubernetes',
strong: '一键离线安装',
action: '去看看',
url: 'http://store.lameleg.com?referrer=shaohq',
weight: 20
},
{
name: '阳明的博客',
description: 'Kubernetes',
strong: '实战课程',
action: '去看看',
url: 'https://www.qikqiak.com/post/promotion-51/',
weight: 50
},
{
name: '极客时间',
description: '精要30计让DevOps快速落地。',
strong: 'DevOps实战笔记',
action: '去看看',
url: 'https://time.geekbang.org/column/intro/100036601?code=0Totv3yN%2FohiumTclUF4ky4qRYs9Ecq6ZK4IdgNf88M%3D',
weight: 30
},
// {
// name: '宝塔面板',
// description: '一键全能 Linux 部署及管理,',
// strong: '送你3188元礼包',
// action: '点我领取',
// url: 'https://www.bt.cn/?invite_code=MV9vdnlveno=',
// weight: 50
// }
]

489
.vuepress/config-sidebar.js Normal file
View File

@ -0,0 +1,489 @@
module.exports = {
'/overview/': [
{
title: '简介',
collapsable: false,
children: [
'',
'share-coder'
]
}, {
title: '概念',
collapsable: false,
children: [
'quick-win',
'why-kuboard',
'concepts'
]
},
],
'/articles/': [
{
title: '文章',
collapsable: false,
children: [
'201908/kuboard-view-of-k8s'
]
}
],
'/install/': [
{
title: '安装 Kubernetes',
collapsable: false,
children: [
'install-docker-desktop',
['install-k8s', '安装Kubernetes单Master节点'],
'install-kubernetes',
]
},
{
title: '升级 Kubernetes',
collapsable: false,
children: [
// ['install-k8s-upgrade', '升级Kubernetes集群'],
'upgrade-k8s/1.15.x-1.15.4',
['upgrade-k8s/1.15.x-1.16.x', 'K8S从1.15.x(1.16.x)升级到 1.16.x'],
'upgrade-k8s/calico-3.8-3.9',
]
},
{
title: '管理 Kubernetes',
collapsable: false,
children: [
'install-dashboard',
'install-dashboard-upgrade',
'install-kubectl',
'config-kubectl',
'install-k8s-dashboard',
]
},
// {
// title: '常见问题',
// collapsable: false,
// children: [
// 'faq/timeout'
// ]
// }
],
'/learning/': [
{
title: 'Kubernetes 介绍',
collapsable: true,
sidebarDepth: 3,
children: [
'',
'k8s-bg/what-is-k8s',
'k8s-bg/component',
]
},
{
title: 'Kubernetes 入门',
collapsable: true,
sidebarDepth: 3,
children: [
'k8s-basics/kubernetes-basics',
'k8s-basics/deploy-app',
'k8s-basics/explore',
'k8s-basics/expose',
'k8s-basics/scale',
'k8s-basics/update',
'k8s-basics/k8s-core-concepts'
]
},
{
title: 'Kubernetes 进阶',
collapsable: true,
children: [
{
title: '架构',
collapsable: true,
children: [
{
title: '节点',
collapsable: true,
// path: '/learning/k8s-bg/architecture/nodes',
children: [
'k8s-bg/architecture/nodes',
'k8s-bg/architecture/nodes-mgmt',
]
},
{
title: '集群内的通信',
collapsable: true,
// path: '/learning/k8s-bg/architecture/com',
children: [
'k8s-bg/architecture/com',
'k8s-bg/architecture/com-n-m',
'k8s-bg/architecture/com-m-n',
]
},
'k8s-bg/architecture/controller',
]
},
{
title: '操作Kubernetes',
collapsable: true,
children: [
'k8s-intermediate/obj/k8s-object',
'k8s-intermediate/obj/manage',
'k8s-intermediate/obj/names',
'k8s-intermediate/obj/namespaces',
'k8s-intermediate/obj/namespace-op',
'k8s-intermediate/obj/labels',
'k8s-intermediate/obj/annotations',
'k8s-intermediate/obj/field',
]
},
{
title: '容器',
collapsable: true,
children: [
'k8s-intermediate/container/images',
'k8s-intermediate/container/env',
'k8s-intermediate/container/runtime',
'k8s-intermediate/container/lifecycle',
'k8s-intermediate/container/lifecycle-p',
]
},
{
title: '工作负载',
collapsable: true,
children: [
'k8s-intermediate/workload/pod',
'k8s-intermediate/workload/pod-lifecycle',
'k8s-intermediate/workload/init-container',
'k8s-intermediate/workload/init-config',
'k8s-intermediate/workload/init-debug',
'k8s-intermediate/workload/workload',
{
title: '控制器 - Deployment',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-deployment/',
'k8s-intermediate/workload/wl-deployment/create',
'k8s-intermediate/workload/wl-deployment/update',
'k8s-intermediate/workload/wl-deployment/rollback',
'k8s-intermediate/workload/wl-deployment/scale',
'k8s-intermediate/workload/wl-deployment/pause',
'k8s-intermediate/workload/wl-deployment/status',
'k8s-intermediate/workload/wl-deployment/cleanup',
'k8s-intermediate/workload/wl-deployment/canary',
]
},
{
title: '控制器 - StatefulSet',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-statefulset/',
'k8s-intermediate/workload/wl-statefulset/basics.html',
'k8s-intermediate/workload/wl-statefulset/scaling.html',
'k8s-intermediate/workload/wl-statefulset/update.html',
]
},
{
title: '控制器 - DaemonSet',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-daemonset/',
'k8s-intermediate/workload/wl-daemonset/create',
'k8s-intermediate/workload/wl-daemonset/schedule',
'k8s-intermediate/workload/wl-daemonset/communicate',
'k8s-intermediate/workload/wl-daemonset/update',
'k8s-intermediate/workload/wl-daemonset/alternative',
]
}
]
},
{
title: '服务发现、负载均衡、网络',
collapsable: true,
children: [
'k8s-intermediate/service/service',
'k8s-intermediate/service/service-details',
'k8s-intermediate/service/service-types',
'k8s-intermediate/service/dns',
'k8s-intermediate/service/host-alias',
'k8s-intermediate/service/connecting',
'k8s-intermediate/service/ingress',
'k8s-intermediate/service/cni',
]
},
{
title: '存储',
collapsable: true,
children: [
'k8s-intermediate/persistent/volume',
'k8s-intermediate/persistent/volume-mount-point.html',
'k8s-intermediate/persistent/pv',
'k8s-intermediate/persistent/storage-class',
'k8s-intermediate/persistent/nfs',
]
},
{
title: '配置',
collapsable: true,
children: [
'k8s-intermediate/private-registry',
'k8s-intermediate/config/config-map',
'k8s-intermediate/config/computing-resource',
'k8s-intermediate/config/assign-pod-node',
{
title: '污点和容忍',
collapsable: true,
children: [
'k8s-intermediate/config/taints-toleration/',
'k8s-intermediate/config/taints-toleration/use-case',
'k8s-intermediate/config/taints-toleration/taint-based-evictions',
'k8s-intermediate/config/taints-toleration/taint-nodes-by-condition',
]
},
{
title: 'Secret',
collapsable: true,
children: [
'k8s-intermediate/config/secrets/',
'k8s-intermediate/config/secrets/create-kubectl',
'k8s-intermediate/config/secrets/create-manually',
'k8s-intermediate/config/secrets/create-generator',
'k8s-intermediate/config/secrets/create-kuboard',
'k8s-intermediate/config/secrets/decode-edit',
'k8s-intermediate/config/secrets/use-case-ingress-tls',
// 'k8s-intermediate/config/secrets/use-as_file',
// 'k8s-intermediate/config/secrets/use-as_env',
// 'k8s-intermediate/config/secrets/use-image-pull-secrets',
// 'k8s-intermediate/config/secrets/details',
// 'k8s-intermediate/config/secrets/use-cases',
// 'k8s-intermediate/config/secrets/best-practices',
]
},
{
title: 'Security Context',
collapsable: true,
children: [
'k8s-intermediate/config/sec-ctx/',
'k8s-intermediate/config/sec-ctx/pod',
'k8s-intermediate/config/sec-ctx/con',
'k8s-intermediate/config/sec-ctx/con-cap',
'k8s-intermediate/config/sec-ctx/con-sel',
'k8s-intermediate/config/sec-ctx/volumes',
'k8s-intermediate/config/sec-ctx/pod-kuboard',
'k8s-intermediate/config/sec-ctx/con-kuboard',
]
},
'k8s-intermediate/config/priority-preemption',
]
}
]
},
{
title: 'Kubernetes 高级',
collapsable: true,
children: [
{
title: '问题诊断',
collapsable: true,
children: [
'k8s-advanced/ts/application',
'k8s-advanced/ts/cluster',
]
},
{
title: '日志',
collapsable: true,
children: [
'k8s-advanced/logs/',
'k8s-advanced/logs/basic',
'k8s-advanced/logs/node',
'k8s-advanced/logs/cluster',
]
},
{
title: '调度',
collapsable: true,
children: [
'k8s-advanced/schedule/',
'k8s-advanced/schedule/tuning',
'k8s-advanced/schedule/framework',
]
},
{
title: '策略',
collapsable: true,
children: [
{
title: 'Limit Range',
collapsable: true,
children: [
'k8s-advanced/policy/lr',
'k8s-advanced/policy/lr_container',
'k8s-advanced/policy/lr_pod',
'k8s-advanced/policy/lr_storage',
'k8s-advanced/policy/lr_ratio',
]
},
{
title: 'Resource Quota',
collapsable: true,
children: [
'k8s-advanced/policy/rq',
'k8s-advanced/policy/rq_types',
'k8s-advanced/policy/rq_scope',
'k8s-advanced/policy/rq_more',
'k8s-advanced/policy/rq_example_cpu_mem',
'k8s-advanced/policy/rq_example_obj',
]
},
// {
// title: 'Pod Security',
// collapsable: true,
// children: [
// 'k8s-advanced/policy/sec',
// ]
// },
]
},
]
},
{
title: 'Kubernetes 实战',
collapsable: true,
children: [
{
title: '概述',
collapsable: false,
children: [
'k8s-practice/micro-service/kuboard-view-of-k8s'
]
},
{
title: 'Spring Cloud',
collapsable: false,
children: [
'k8s-practice/spring-cloud/',
// 'spring-cloud/cloud-eureka'
]
},
{
title: 'Open Capacity Platform',
collapsable: true,
children: [
{
title: '准备',
collapsable: false,
path: '/learning/k8s-practice/ocp/',
children: [
['k8s-practice/ocp/', 'OCP介绍'],
'k8s-practice/ocp/prepare',
'k8s-practice/ocp/build',
]
},
{
title: '部署',
collapsable: false,
path: '/learning/k8s-practice/ocp/sequence.html',
children: [
'k8s-practice/ocp/sequence',
'k8s-practice/ocp/eureka-server',
'k8s-practice/ocp/mysql',
'k8s-practice/ocp/redis',
'k8s-practice/ocp/auth-server',
'k8s-practice/ocp/user-center',
'k8s-practice/ocp/api-gateway',
'k8s-practice/ocp/back-center',
'k8s-practice/ocp/review',
]
},
{
title: '多环境',
collapsable: false,
path: '/learning/k8s-practice/ocp/export.html',
children: [
'k8s-practice/ocp/export',
'k8s-practice/ocp/import',
]
},
]
},
]
}
],
'/guide/': [
{
title: '概述',
collapsable: false,
children: [
['', '概述']
]
},
{
title: 'Example',
collapsable: false,
children: [
'example/busybox',
'example/import',
'example/monitor',
]
},
{
title: '集群管理',
collapsable: false,
children: [
'cluster/computing',
'cluster/storage',
'cluster/namespace'
]
},
{
title: '应用管理',
collapsable: false,
children: [
'namespace/workload',
'namespace/secrets',
'namespace/configMap',
'namespace/pvc',
'namespace/adjustion',
'namespace/multi-env'
]
},
{
title: '问题诊断',
collapsable: false,
children: [
'diagonize/events',
'diagonize/logs',
'diagonize/port-forward'
]
},
{
title: '监控套件',
collapsable: false,
children: [
'monitor/',
'monitor/apis'
]
},
],
'/support/': [
{
title: '授权/支持',
collapsable: false,
children: [
'',
]
},
{
title: '更新说明',
collapsable: false,
children: [
'change-log/v1.0.x',
]
}
],
}

View File

@ -7,6 +7,9 @@ module.exports = {
// ['meta', {name: 'keywords', content: 'Kubernetes教程,Kubernetes安装,K8S教程,K8S安装,Kubernetes管理界面'}], // ['meta', {name: 'keywords', content: 'Kubernetes教程,Kubernetes安装,K8S教程,K8S安装,Kubernetes管理界面'}],
['link', { rel: 'icon', href: '/favicon.png' }], ['link', { rel: 'icon', href: '/favicon.png' }],
['link', { rel: 'manifest', href: '/manifest.json' }], ['link', { rel: 'manifest', href: '/manifest.json' }],
['meta', { name: 'theme-color', content: '#007af5' }],
['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
['script', {}, ` ['script', {}, `
var _hmt = _hmt || []; var _hmt = _hmt || [];
(function() { (function() {
@ -27,12 +30,25 @@ module.exports = {
// `], // `],
['script', { 'data-ad-client': "ca-pub-3313149841665250", async: true, src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"}], ['script', { 'data-ad-client': "ca-pub-3313149841665250", async: true, src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"}],
// <script data-ad-client="ca-pub-3313149841665250" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> // <script data-ad-client="ca-pub-3313149841665250" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
// ['script', { 'type': 'text/javascript', async: true, src: '//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js', 'data-dojo-config': 'usePlainJson: true, isDebug: false'}],
// ['script', { 'type': 'text/javascript' }, ` ['script', { type: 'text/javascript', async: true, src: "https://bot.4paradigm.com/web/assets/ics-web-sdk-js.js" }],
// window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"mc.us20.list-manage.com","uuid":"2273cb19eb20bb1bc5b7745a7","lid":"f1f25d6dac","uniqueMethods":true}) }) ['script', { type: 'text/javascript' }, `
// `], window.onload = function() {
// <script type="text/javascript" src="//downloads.mailchimp.com/js/signup-forms/popup/unique-methods/embed.js" data-dojo-config="usePlainJson: true, isDebug: false"></script> if (window.innerWidth > 1360) {
// <script type="text/javascript">window.dojoRequire(["mojo/signup-forms/Loader"], function(L) { L.start({"baseUrl":"mc.us20.list-manage.com","uuid":"2273cb19eb20bb1bc5b7745a7","lid":"f1f25d6dac","uniqueMethods":true}) })</script> console.log('init-wechat')
IcsWebSdkJs.init('https://bot.4paradigm.com/web/chat/15516/bbc69136-e42c-4299-ba85-c57685c8417d')
} else {
console.log('窗口太小,不显示机器人')
}
}`],
// <script type="text/javascript" src="https://bot.4paradigm.com/web/assets/ics-web-sdk-js.js"></script>
// <script type="text/javascript">
// IcsWebSdkJs.init('https://bot.4paradigm.com/web/chat/15516/bbc69136-e42c-4299-ba85-c57685c8417d')
// </script>
], ],
markdown: { markdown: {
toc: { includeLevel: [2, 3] }, toc: { includeLevel: [2, 3] },
@ -162,502 +178,6 @@ module.exports = {
editLinks: true, editLinks: true,
// 默认为 "Edit this page" // 默认为 "Edit this page"
editLinkText: '帮助我们改善此页面!', editLinkText: '帮助我们改善此页面!',
sidebar: { sidebar: require('./config-sidebar')
'/overview/': [
{
title: '简介',
collapsable: false,
children: [
'',
'share-coder'
]
}, {
title: '概念',
collapsable: false,
children: [
'quick-win',
'why-kuboard',
'concepts'
]
},
// {
// title: '技术支持',
// collapsable: false,
// children: [
// 'support',
// 'change-log'
// ]
// }
],
'/articles/': [
{
title: '文章',
collapsable: false,
children: [
'201908/kuboard-view-of-k8s'
]
}
],
'/install/': [
{
title: '安装 Kubernetes',
collapsable: false,
children: [
'install-docker-desktop',
['install-k8s', '安装Kubernetes单Master节点'],
'install-kubernetes',
]
},
{
title: '升级 Kubernetes',
collapsable: false,
children: [
// ['install-k8s-upgrade', '升级Kubernetes集群'],
'upgrade-k8s/1.15.x-1.15.4',
['upgrade-k8s/1.15.x-1.16.x', 'K8S从1.15.x(1.16.x)升级到 1.16.x'],
'upgrade-k8s/calico-3.8-3.9',
]
},
{
title: '管理 Kubernetes',
collapsable: false,
children: [
'install-dashboard',
'install-dashboard-upgrade',
'install-kubectl',
'config-kubectl',
'install-k8s-dashboard',
]
},
// {
// title: '常见问题',
// collapsable: false,
// children: [
// 'faq/timeout'
// ]
// }
],
'/learning/': [
{
title: 'Kubernetes 介绍',
collapsable: true,
sidebarDepth: 3,
children: [
'',
'k8s-bg/what-is-k8s',
'k8s-bg/component',
]
},
{
title: 'Kubernetes 入门',
collapsable: true,
sidebarDepth: 3,
children: [
'k8s-basics/kubernetes-basics',
'k8s-basics/deploy-app',
'k8s-basics/explore',
'k8s-basics/expose',
'k8s-basics/scale',
'k8s-basics/update',
'k8s-basics/k8s-core-concepts'
]
},
{
title: 'Kubernetes 进阶',
collapsable: true,
children: [
{
title: '架构',
collapsable: true,
children: [
{
title: '节点',
collapsable: true,
// path: '/learning/k8s-bg/architecture/nodes',
children: [
'k8s-bg/architecture/nodes',
'k8s-bg/architecture/nodes-mgmt',
]
},
{
title: '集群内的通信',
collapsable: true,
// path: '/learning/k8s-bg/architecture/com',
children: [
'k8s-bg/architecture/com',
'k8s-bg/architecture/com-n-m',
'k8s-bg/architecture/com-m-n',
]
},
'k8s-bg/architecture/controller',
]
},
{
title: '操作Kubernetes',
collapsable: true,
children: [
'k8s-intermediate/obj/k8s-object',
'k8s-intermediate/obj/manage',
'k8s-intermediate/obj/names',
'k8s-intermediate/obj/namespaces',
'k8s-intermediate/obj/namespace-op',
'k8s-intermediate/obj/labels',
'k8s-intermediate/obj/annotations',
'k8s-intermediate/obj/field',
]
},
{
title: '容器',
collapsable: true,
children: [
'k8s-intermediate/container/images',
'k8s-intermediate/container/env',
'k8s-intermediate/container/runtime',
'k8s-intermediate/container/lifecycle',
'k8s-intermediate/container/lifecycle-p',
]
},
{
title: '工作负载',
collapsable: true,
children: [
'k8s-intermediate/workload/pod',
'k8s-intermediate/workload/pod-lifecycle',
'k8s-intermediate/workload/init-container',
'k8s-intermediate/workload/init-config',
'k8s-intermediate/workload/init-debug',
'k8s-intermediate/workload/workload',
{
title: '控制器 - Deployment',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-deployment/',
'k8s-intermediate/workload/wl-deployment/create',
'k8s-intermediate/workload/wl-deployment/update',
'k8s-intermediate/workload/wl-deployment/rollback',
'k8s-intermediate/workload/wl-deployment/scale',
'k8s-intermediate/workload/wl-deployment/pause',
'k8s-intermediate/workload/wl-deployment/status',
'k8s-intermediate/workload/wl-deployment/cleanup',
'k8s-intermediate/workload/wl-deployment/canary',
]
},
{
title: '控制器 - StatefulSet',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-statefulset/',
'k8s-intermediate/workload/wl-statefulset/basics.html',
'k8s-intermediate/workload/wl-statefulset/scaling.html',
'k8s-intermediate/workload/wl-statefulset/update.html',
]
},
{
title: '控制器 - DaemonSet',
collapsable: true,
children: [
'k8s-intermediate/workload/wl-daemonset/',
'k8s-intermediate/workload/wl-daemonset/create',
'k8s-intermediate/workload/wl-daemonset/schedule',
'k8s-intermediate/workload/wl-daemonset/communicate',
'k8s-intermediate/workload/wl-daemonset/update',
'k8s-intermediate/workload/wl-daemonset/alternative',
]
}
]
},
{
title: '服务发现、负载均衡、网络',
collapsable: true,
children: [
'k8s-intermediate/service/service',
'k8s-intermediate/service/service-details',
'k8s-intermediate/service/service-types',
'k8s-intermediate/service/dns',
'k8s-intermediate/service/host-alias',
'k8s-intermediate/service/connecting',
'k8s-intermediate/service/ingress',
'k8s-intermediate/service/cni',
]
},
{
title: '存储',
collapsable: true,
children: [
'k8s-intermediate/persistent/volume',
'k8s-intermediate/persistent/volume-mount-point.html',
'k8s-intermediate/persistent/pv',
'k8s-intermediate/persistent/storage-class',
'k8s-intermediate/persistent/nfs',
]
},
{
title: '配置',
collapsable: true,
children: [
'k8s-intermediate/private-registry',
'k8s-intermediate/config/config-map',
'k8s-intermediate/config/computing-resource',
'k8s-intermediate/config/assign-pod-node',
{
title: '污点和容忍',
collapsable: true,
children: [
'k8s-intermediate/config/taints-toleration/',
'k8s-intermediate/config/taints-toleration/use-case',
'k8s-intermediate/config/taints-toleration/taint-based-evictions',
'k8s-intermediate/config/taints-toleration/taint-nodes-by-condition',
]
},
{
title: 'Secret',
collapsable: true,
children: [
'k8s-intermediate/config/secrets/',
'k8s-intermediate/config/secrets/create-kubectl',
'k8s-intermediate/config/secrets/create-manually',
'k8s-intermediate/config/secrets/create-generator',
'k8s-intermediate/config/secrets/create-kuboard',
'k8s-intermediate/config/secrets/decode-edit',
'k8s-intermediate/config/secrets/use-case-ingress-tls',
// 'k8s-intermediate/config/secrets/use-as_file',
// 'k8s-intermediate/config/secrets/use-as_env',
// 'k8s-intermediate/config/secrets/use-image-pull-secrets',
// 'k8s-intermediate/config/secrets/details',
// 'k8s-intermediate/config/secrets/use-cases',
// 'k8s-intermediate/config/secrets/best-practices',
]
},
{
title: 'Security Context',
collapsable: true,
children: [
'k8s-intermediate/config/sec-ctx/',
'k8s-intermediate/config/sec-ctx/pod',
'k8s-intermediate/config/sec-ctx/con',
'k8s-intermediate/config/sec-ctx/con-cap',
'k8s-intermediate/config/sec-ctx/con-sel',
'k8s-intermediate/config/sec-ctx/volumes',
'k8s-intermediate/config/sec-ctx/pod-kuboard',
'k8s-intermediate/config/sec-ctx/con-kuboard',
]
},
'k8s-intermediate/config/priority-preemption',
]
}
]
},
{
title: 'Kubernetes 高级',
collapsable: true,
children: [
{
title: '问题诊断',
collapsable: true,
children: [
'k8s-advanced/ts/application',
'k8s-advanced/ts/cluster',
]
},
{
title: '日志',
collapsable: true,
children: [
'k8s-advanced/logs/',
'k8s-advanced/logs/basic',
'k8s-advanced/logs/node',
'k8s-advanced/logs/cluster',
]
},
{
title: '调度',
collapsable: true,
children: [
'k8s-advanced/schedule/',
'k8s-advanced/schedule/tuning',
'k8s-advanced/schedule/framework',
]
},
{
title: '策略',
collapsable: true,
children: [
{
title: 'Limit Range',
collapsable: true,
children: [
'k8s-advanced/policy/lr',
'k8s-advanced/policy/lr_container',
'k8s-advanced/policy/lr_pod',
'k8s-advanced/policy/lr_storage',
'k8s-advanced/policy/lr_ratio',
]
},
{
title: 'Resource Quota',
collapsable: true,
children: [
'k8s-advanced/policy/rq',
'k8s-advanced/policy/rq_types',
'k8s-advanced/policy/rq_scope',
'k8s-advanced/policy/rq_more',
'k8s-advanced/policy/rq_example_cpu_mem',
'k8s-advanced/policy/rq_example_obj',
]
},
// {
// title: 'Pod Security',
// collapsable: true,
// children: [
// 'k8s-advanced/policy/sec',
// ]
// },
]
},
]
},
{
title: 'Kubernetes 实战',
collapsable: true,
children: [
{
title: '概述',
collapsable: false,
children: [
'k8s-practice/micro-service/kuboard-view-of-k8s'
]
},
{
title: 'Spring Cloud',
collapsable: false,
children: [
'k8s-practice/spring-cloud/',
// 'spring-cloud/cloud-eureka'
]
},
{
title: 'Open Capacity Platform',
collapsable: true,
children: [
{
title: '准备',
collapsable: false,
path: '/learning/k8s-practice/ocp/',
children: [
['k8s-practice/ocp/', 'OCP介绍'],
'k8s-practice/ocp/prepare',
'k8s-practice/ocp/build',
]
},
{
title: '部署',
collapsable: false,
path: '/learning/k8s-practice/ocp/sequence.html',
children: [
'k8s-practice/ocp/sequence',
'k8s-practice/ocp/eureka-server',
'k8s-practice/ocp/mysql',
'k8s-practice/ocp/redis',
'k8s-practice/ocp/auth-server',
'k8s-practice/ocp/user-center',
'k8s-practice/ocp/api-gateway',
'k8s-practice/ocp/back-center',
'k8s-practice/ocp/review',
]
},
{
title: '多环境',
collapsable: false,
path: '/learning/k8s-practice/ocp/export.html',
children: [
'k8s-practice/ocp/export',
'k8s-practice/ocp/import',
]
},
]
},
]
}
],
'/guide/': [
{
title: '概述',
collapsable: false,
children: [
['', '概述']
]
},
{
title: 'Example',
collapsable: false,
children: [
'example/busybox',
'example/import',
'example/monitor',
]
},
{
title: '集群管理',
collapsable: false,
children: [
'cluster/computing',
'cluster/storage',
'cluster/namespace'
]
},
{
title: '应用管理',
collapsable: false,
children: [
'namespace/workload',
'namespace/secrets',
'namespace/configMap',
'namespace/pvc',
'namespace/adjustion',
'namespace/multi-env'
]
},
{
title: '问题诊断',
collapsable: false,
children: [
'diagonize/events',
'diagonize/logs',
'diagonize/port-forward'
]
},
{
title: '监控套件',
collapsable: false,
children: [
'monitor/',
'monitor/apis'
]
},
],
'/support/': [
{
title: '授权/支持',
collapsable: false,
children: [
'',
]
},
{
title: '更新说明',
collapsable: false,
children: [
'change-log/v1.0.x',
]
}
],
}
} }
} }

View File

@ -96,4 +96,4 @@ systemctl enable kubelet && systemctl start kubelet
docker version docker version
echo -e "\033[31;1m请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群以避免碰到问题时无人解答\033[0m" echo -e "\033[31;1mKubernetes.org.cn发文审核周期长请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群808894550,以避免碰到问题时无人解答\033[0m"

View File

@ -32,4 +32,4 @@ wget https://docs.projectcalico.org/v3.9/manifests/calico.yaml
sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml sed -i "s#192\.168\.0\.0/16#${POD_SUBNET}#" calico.yaml
kubectl apply -f calico.yaml kubectl apply -f calico.yaml
echo -e "\033[31;1m请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新K8S安装文档并加入了在线答疑QQ群以避免碰到问题时无人解答\033[0m" echo -e "\033[31;1mKubernetes.org.cn发文审核周期长请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群808894550,以避免碰到问题时无人解答\033[0m"

View File

@ -96,4 +96,4 @@ systemctl enable kubelet && systemctl start kubelet
docker version docker version
echo -e "\033[31;1m请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群以避免碰到问题时无人解答\033[0m" echo -e "\033[31;1mKubernetes.org.cn发文审核周期长请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群808894550,以避免碰到问题时无人解答\033[0m"

View File

@ -97,4 +97,4 @@ systemctl enable kubelet && systemctl start kubelet
docker version docker version
echo -e "\033[31;1m请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群808894550以避免碰到问题时无人解答\033[0m" echo -e "\033[31;1mKubernetes.org.cn发文审核周期长请确保您正在使用 https://kuboard.cn/install/install-k8s.html 上的最新文档并加入了在线答疑QQ群808894550以避免碰到问题时无人解答\033[0m"

Binary file not shown.

View File

@ -1,6 +1,6 @@
{ {
"name": "Kuboard文档", "name": "Kuboard官网",
"short_name": "KuboardDocs", "short_name": "Kuboard",
"start_url": ".", "start_url": ".",
"display": "standalone", "display": "standalone",
"background_color": "#fff", "background_color": "#fff",

View File

@ -11,14 +11,13 @@
Kubernetes教程K8S教程绝不降低品质 Kubernetes教程K8S教程绝不降低品质
</li> </li>
<li> <li>
鼓励作者尽快完成 Kubernetes 教程 <span style="color: red; font-weight: 500;">剩下的 {{$themeConfig.incompleteRatio}}% </span>
所以我要
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="$sendGaEvent('GithubStar', '页头求GitHubStar', 'GitHubStar: ' + $page.path)">给一个 Github Star <OutboundLink/></a> <a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="$sendGaEvent('GithubStar', '页头求GitHubStar', 'GitHubStar: ' + $page.path)">给一个 Github Star <OutboundLink/></a>
就可以鼓励作者尽快完成 <span style="color: red; font-weight: 500;">剩下的 {{$themeConfig.incompleteRatio}}% </span>
</li> </li>
<li> <li>
<Qq></Qq> <!-- <Qq></Qq>
群号: 808894550 群号: 808894550 -->
<span style="font-weight: 500;">在线答疑</span> <span style="font-weight: 500;">在线答疑</span> 加群方式见页尾
<!-- 初学者可选择在线课程语言更通俗 <!-- 初学者可选择在线课程语言更通俗
<span @click="$sendGaEvent('极客时间', '极客时间', '极客时间:' + $page.path)"> <span @click="$sendGaEvent('极客时间', '极客时间', '极客时间:' + $page.path)">
<a target="_blank" href="https://time.geekbang.org/column/intro/100015201?code=MH1Wu456g0ZsrKtQI7QidivKV2hVvzerAUxDz5pOuQs%3D">深入剖析Kubernetes</a> <a target="_blank" href="https://time.geekbang.org/column/intro/100015201?code=MH1Wu456g0ZsrKtQI7QidivKV2hVvzerAUxDz5pOuQs%3D">深入剖析Kubernetes</a>

View File

@ -25,10 +25,3 @@ description: 熟悉Kuboard_on_Kubernetes_的最佳途径。
* 根据微服务上下文查看监控结果 * 根据微服务上下文查看监控结果
[在微服务上下文中监控 example](example/monitor.html) <Badge text="alpha" type="warn"/> [在微服务上下文中监控 example](example/monitor.html) <Badge text="alpha" type="warn"/>
**Kuboard 可用于**
* 管理 Kubernetes 集群
* 管理部署于 Kubernetes 的微服务
* 诊断集群中的问题
* 监控部署于 Kubernetes 的微服务

View File

@ -30,6 +30,7 @@ meta:
* [什么是Kubernetes](/learning/k8s-bg/what-is-k8s.html) * [什么是Kubernetes](/learning/k8s-bg/what-is-k8s.html)
* [Kubernetes组件](/learning/k8s-bg/component.html) * [Kubernetes组件](/learning/k8s-bg/component.html)
## **Kubernetes 体验** ## **Kubernetes 体验**
* [安装 Kubernetes 单Master节点](/install/install-k8s.html) 30分钟初学者也许需要更多 * [安装 Kubernetes 单Master节点](/install/install-k8s.html) 30分钟初学者也许需要更多
* 参照经过众多网友验证,不断优化的安装文档,迅速完成 Kubernetes 安装,拥有属于自己的 Kubernetes 集群。 * 参照经过众多网友验证,不断优化的安装文档,迅速完成 Kubernetes 安装,拥有属于自己的 Kubernetes 集群。
@ -37,8 +38,7 @@ meta:
* 使用 Kuboard无需编写复杂冗长的 YAML 文件,就可以轻松管理 Kubernetes 集群。 * 使用 Kuboard无需编写复杂冗长的 YAML 文件,就可以轻松管理 Kubernetes 集群。
* [创建 busybox](/guide/example/busybox.html) 10分钟 * [创建 busybox](/guide/example/busybox.html) 10分钟
* 快速在 Kubernetes 集群中安装一个部署,并与当中的容器组交互。 * 快速在 Kubernetes 集群中安装一个部署,并与当中的容器组交互。
* [导入 example 微服务应用](/guide/example/import.html) 15分钟
* 导入一个完整的 example 微服务应用,体验 Spring Cloud 在 Kubernetes 上的部署过程。
## **Kubernetes 入门** ## **Kubernetes 入门**
* [0. 学习Kubernetes基础知识](/learning/k8s-basics/kubernetes-basics.html) (10分钟) * [0. 学习Kubernetes基础知识](/learning/k8s-basics/kubernetes-basics.html) (10分钟)
@ -48,6 +48,17 @@ meta:
* [4. 伸缩应用程序](/learning/k8s-basics/scale.html) (10分钟) * [4. 伸缩应用程序](/learning/k8s-basics/scale.html) (10分钟)
* [5. 执行滚动更新](/learning/k8s-basics/update.html) (10分钟) * [5. 执行滚动更新](/learning/k8s-basics/update.html) (10分钟)
* [6. 复习Kubernetes核心概念](/learning/k8s-basics/k8s-core-concepts.html) (10分钟) * [6. 复习Kubernetes核心概念](/learning/k8s-basics/k8s-core-concepts.html) (10分钟)
::: tip
* 入门教程是经典。推荐初学者学习入门教程 2 - 3 遍,甚至更多。
* 完成入门教程之后,建议首先阅读的文章内容是:
* [控制器](/learning/k8s-bg/architecture/controller.html)
* [诊断应用程序](/learning/k8s-advanced/ts/application.html)
* [使用私有 registry 中的 docker 镜像](/learning/k8s-intermediate/private-registry.html)
* [Service 连接应用程序](/learning/k8s-intermediate/service/connecting.html)
* [Ingress 通过互联网访问您的应用](/learning/k8s-intermediate/service/ingress.html)
* [数据卷 Volume](/learning/k8s-intermediate/persistent/volume.html)
* 下一步,可按教程章节顺序对 Kubernetes 各种概念进行深入理解
:::
## **Kubernetes 进阶** ## **Kubernetes 进阶**
* 架构 * 架构
@ -119,11 +130,15 @@ meta:
## **Kubernetes 实战** ## **Kubernetes 实战**
[从微服务视角理解 Kubernetes](/learning/k8s-practice/micro-service/kuboard-view-of-k8s.html) * [从微服务视角理解 Kubernetes](/learning/k8s-practice/micro-service/kuboard-view-of-k8s.html)
在 Kubernetes 上部署 Spring Cloud 微服务: 在 Kubernetes 上部署 Spring Cloud 微服务:
* [概述](/learning/k8s-practice/spring-cloud/) * [概述](/learning/k8s-practice/spring-cloud/)
* [导入 example 微服务应用](/guide/example/import.html) 15分钟
* 导入一个完整的 example 微服务应用,体验 Spring Cloud 在 Kubernetes 上的部署过程。
* [在微服务上下文中监控 example](example/monitor.html) <Badge text="alpha" type="warn"/>
* 根据微服务上下文查看监控结果
在 Kubernetes 上部署 Spring Cloud 微服务:(Open Capacity Platform) 在 Kubernetes 上部署 Spring Cloud 微服务:(Open Capacity Platform)

View File

@ -53,6 +53,8 @@ meta:
## 实战:更新 nginx Deployment ## 实战:更新 nginx Deployment
<SharingBlock>
<el-tabs type="border-card"> <el-tabs type="border-card">
<el-tab-pane label="使用kubectl"> <el-tab-pane label="使用kubectl">
@ -127,3 +129,5 @@ watch kubectl get pods -l app=nginx
~~呱唧呱唧恭喜您即将成为k8s的大神的您已经迈进了您k8s的最重要的一步了--入门那么接下来请再接再厉继续征服k8s的高峰 ~~呱唧呱唧恭喜您即将成为k8s的大神的您已经迈进了您k8s的最重要的一步了--入门那么接下来请再接再厉继续征服k8s的高峰
</SharingBlock>

View File

@ -17,6 +17,9 @@ Kuboard v1.0.x 的更新说明
* 工作负载编辑器 --> Ingress --> 注解被错误写成标签了 * 工作负载编辑器 --> Ingress --> 注解被错误写成标签了
* 打开监控界面时,应该使用 a 标签而不是window.open 避免被浏览器屏蔽
* PV可以不与StorageClass关联手工创建PV的情况
* 导入工作负载时,如果存储类没有 annotations不应该报错
* 表单校验:数据卷名不能带小数点 * 表单校验:数据卷名不能带小数点
* Kubernetes 体验的安装文档需要优化。 * Kubernetes 体验的安装文档需要优化。
* 点击空白处,不关闭对话框 * 点击空白处,不关闭对话框