替换 element-ui

This commit is contained in:
huanqing.shao
2019-11-02 10:13:24 +08:00
parent 111543d89f
commit 99951e87d9
40 changed files with 625 additions and 829 deletions

View File

@ -1,30 +1,21 @@
<template>
<div>
<link rel="stylesheet" href="/landing/css/googlefont.css">
<link rel="stylesheet" href="/landing/css/font-awesome.min.css">
<link rel="stylesheet" href="/landing/css/style.css">
<link rel="stylesheet" href="/landing/css/components.css">
<div class="py-80" id="features" style="padding-top: 1rem; padding-bottom: 1rem;">
<div class="container" style="margin-top: 0;">
<div class="row">
<div class="col-sm-12">
<div class="text-center" style="margin-bottom: 1rem;">
<div class="text-primary-title">网上那么多 Kubernetes 安装文档为什么这篇文档更有参考价值</div>
<div class="text-primary-install-banner">网上那么多 Kubernetes 安装文档为什么这篇文档更有参考价值</div>
</div>
</div>
</div>
<div class="row">
<transition-group name="lightSpeed" tag="div">
<div class="col-md-4" key="f1" v-show="f1">
<!-- <transition-group name="lightSpeed" tag="div"> -->
<div class="col-md-6" key="f1">
<!-- InfoBox Center <Start> -->
<div class="cs-infobox-left mt-4 feature">
<div class="feature-title">
<img src="/landing/images/icn3.svg" alt="" class="img-fluid">
<div class="text-primary-title">广泛验证</div>
</div>
<div class="feature-description">
<div class="text-primary-install-banner">广泛验证</div>
<li>每天有超过
<span style="font-weight: 500; color: red;">
<!-- {{value}} -->
@ -39,19 +30,16 @@
</span>
人参考此文档完成 Kubernetes 集群的安装</li>
<li>不断有网友对安装文档提出改进意见</li>
</div>
</div>
<!-- InfoBox Center </End> -->
</div>
<div class="col-md-4" key="f2" v-show="f2">
<div class="col-md-6" key="f2">
<!-- InfoBox Center <Start> -->
<div class="cs-infobox-left mt-4 feature">
<div class="feature-title">
<div class="cs-infobox-left mt-4 feature" data-aos="fade-up" data-aos-anchor-placement="top-bottom" data-aos-duration="2000">
<img src="/landing/images/icn4.svg" alt="" class="img-fluid">
<div class="text-primary-title">持续更新</div>
</div>
<div class="feature-description">
<div class="text-primary-install-banner">持续更新</div>
<li>始终有最新的 Kubernetes 稳定版安装文档</li>
<li>当前版本 Kubernetes {{version}}</li>
<li>已完成了
@ -72,43 +60,36 @@
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg>
</a>
</li>
</div>
</div>
<!-- InfoBox Center </End> -->
</div>
<div class="col-md-4" key="f3" v-show="f3">
<div class="col-md-6" key="f3">
<!-- InfoBox Left <Start> -->
<div class="cs-infobox-left mt-4 feature">
<div class="feature-title">
<img src="/landing/images/icn5.svg" alt="" class="img-fluid">
<div class="text-primary-title">适应面广</div>
</div>
<div class="feature-description">
<div class="text-primary-install-banner">适应面广</div>
<li>大部分的 K8S 安装文档都是个人爱好者的一份笔记而已他当时的特定条件并不一定适用于你</li>
<li>此文档经众多网友验证在公有云私有云自建虚拟机等多种条件下均适用</li>
</div>
</div>
<!-- InfoBox Left </End> -->
</div>
<div class="col-md-4" key="f4" v-show="f4">
<div class="col-md-6" key="f4">
<!-- InfoBox Center <Start> -->
<div class="cs-infobox-left mt-4 feature" data-aos="fade-up">
<div class="feature-title">
<img src="/landing/images/icn1.svg" alt="" class="img-fluid">
<div class="text-primary-title">在线答疑</div>
</div>
<div class="feature-description">
<Qq></Qq> 808894550
<p>
<img src="/images/kuboard_qq.png" alt="Kubernetes安装QQ群在线答疑" style="width: 120px;"/>
<br/>如需远程协助请扫描本文页尾的微信二维码
</p>
</div>
<div class="text-primary-install-banner">在线答疑</div>
<div>
<div style="text-align: center;">
<p><Qq></Qq></p>
<img src="/images/kuboard_qq.png" alt="Kubernetes安装QQ群在线答疑" style="width: 120px;"/>
</div>
如需远程协助请扫描本文页尾的微信二维码
</div>
</div>
<!-- InfoBox Center </End> -->
</div>
</transition-group>
<!-- </transition-group> -->
</div>
</div>
</div>
@ -159,16 +140,17 @@ export default {
</script>
<style scoped>
.text-primary-title {
.text-primary-install-banner {
font-size: 1rem;
font-weight: 500;
margin-top: 0.7rem;
margin-left: 0.7rem;
display: inline-block;
}
.feature {
text-align: left;
padding: 1rem;
margin-bottom: 1rem;
min-height: 272px;
z-index: 10;
border: 1px solid #f2be45;
border-radius: 5px;
@ -180,16 +162,5 @@ export default {
/* background-color: rgba(255,227,200); */
background-color: rgba(242, 190, 69, 0.1);
}
.feature-title {
display: inline-block;
text-align: center;
}
.feature-description {
display: inline-block;
max-width: calc(100% - 64px - 2rem);
padding: 0 0 0 1rem;
vertical-align: top;
text-align: left;
}
</style>

View File

@ -3,7 +3,7 @@
<transition name="lightSpeed">
<grid :rwd="{compact: 'stack'}" style="margin-top: 1rem;" v-show="show">
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}" >
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7;" shadow="hover">
<b-card style="height: 100%; color: #2c3e50; line-height: 1.7;" shadow="hover">
<p>
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
Kuboard 在线体验
@ -16,16 +16,16 @@
<li>无需编写YAML</li>
<li>纯图形化环境</li>
<li>多环境管理</li>
</el-card>
</b-card>
</grid-item>
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="hover">
<b-card style="height: 100%; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="hover">
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
<p style="max-width: 100%;">
<img src="./1564841972085.gif" style="border: 1px solid #d7dae2; max-width: 100%;" alt="Kubernetes教程Kuboard 在线Demo"></img>
</p>
</a>
</el-card>
</b-card>
</grid-item>
</grid>
</transition>

View File

@ -8,22 +8,21 @@
<div>
<p style="color: red">必须选中下面的 {{envCount}} 个勾选框才能继续</p>
<p>选中后显示 安装 docker/kubelet 的文档</p>
<div style="display: inline-block; width: 550px; max-width: calc(100vw - 100px); overflow: hidden; line-height: 40px; background-color: rgba(255,229,100,0.3); padding: 20px 0 0 20px; margin-bottom: 20px; border: 1px solid #d7dae2;">
<el-form :model="form" ref="envForm" :rules="rules" style="text-align: left;">
<el-form-item prop="checked" class="env-form-item">
<el-checkbox-group v-model="form.checked">
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="centos">我的任意节点 centos 版本在兼容列表中</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="cpu">我的任意节点 CPU 内核数量大于等于 2</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="hostname">我的任意节点 hostname 不是 localhost且不包含下划线小数点大写字母</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="ipaddress">我的任意节点都有固定的内网 IP 地址</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="networkcard">我的任意节点只有一块网卡可以在完成K8S安装后再添加网卡</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="nat">如果我直接使用vmware等创建虚拟机我使用NAT网络而不是桥接网络</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; max-width: calc(100vw - 100px); text-align: left;" label="docker">我的任意节点不会直接使用 docker run docker-compose 运行容器</el-checkbox> </li>
</el-checkbox-group>
</el-form-item>
</el-form>
<div style="overflow: hidden; background-color: rgba(255,229,100,0.3); padding: 20px 0 0 20px; margin-top: 1rem; margin-bottom: 20px; border: 1px solid #d7dae2;">
<b-form>
<b-form-group label="选中后显示 安装 docker/kubelet 的文档">
<b-form-checkbox-group id="checkbox-group-2" v-model="form.checked" name="flavour-2">
<b-form-checkbox value="centos">我的任意节点 centos 版本在兼容列表中</b-form-checkbox><br/>
<b-form-checkbox value="cpu">我的任意节点 CPU 内核数量大于等于 2</b-form-checkbox><br/>
<b-form-checkbox value="hostname">我的任意节点 hostname 不是 localhost且不包含下划线小数点大写字母</b-form-checkbox><br/>
<b-form-checkbox value="ipaddress">我的任意节点都有固定的内网 IP 地址</b-form-checkbox><br/>
<b-form-checkbox value="networkcard">我的任意节点只有一块网卡可以在完成K8S安装后再添加网卡</b-form-checkbox><br/>
<b-form-checkbox value="nat">如果我直接使用vmware等创建虚拟机我使用NAT网络而不是桥接网络</b-form-checkbox><br/>
<b-form-checkbox value="docker">我的任意节点不会直接使用 docker run docker-compose 运行容器</b-form-checkbox><br/>
</b-form-checkbox-group>
</b-form-group>
</b-form>
</div>
</div>
@ -35,12 +34,10 @@
</grid> -->
</div>
<el-collapse-transition>
<div v-show="envOk" key="ok">
<el-button style="margin-top: 10px;" @click="review" type="text">再看看我是否符合安装条件</el-button>
<b-button style="margin-top: 10px;" @click="review" variant="info">再看看我是否符合安装条件</b-button>
<slot></slot>
</div>
</el-collapse-transition>
</div>
</div>
</template>
@ -87,7 +84,11 @@ export default {
},
envOk () {
if (this.envOk) {
this.$message.success(`如果您符合刚才 ${ENV_COUNT} 个条件,请继续安装`)
this.$bvToast.toast(`如果您符合刚才 ${ENV_COUNT} 个条件,请继续安装`, {
title: '完成环境检查',
variant: 'success',
autoHideDelay: 5000,
})
this.$sendGaEvent('install-' + this.type, 'envOk-' + this.type, '已确认环境符合条件-' + this.type)
}
}

View File

@ -3,10 +3,10 @@
<div v-for="(item, key) in vssues" :key="key">
<Vssue v-if="item && item > 0" v-show="key === $route.path" :issueId="item" :options="options"/>
<div v-if="item === undefined && isLocalHost" v-show="key === $route.path" :key="key">
<el-button type="danger" @click="vssues[key] = ''">请创建 VssueId</el-button>
<b-button variant="danger" @click="vssues[key] = ''">请创建 VssueId</b-button>
</div>
<div v-if="item === ''">
<el-button type="warning" @click="refreshId = $refs.vssue[0].vssue.issue.id">请填写 vusseId <span v-if="refreshId"> - {{refreshId}}</span></el-button>
<b-button variant="warning" @click="refreshId = $refs.vssue[0].vssue.issue.id">请填写 vusseId <span v-if="refreshId"> - {{refreshId}}</span></b-button>
<Vssue ref="vssue" :title="$page.path" :options="options"/>
</div>
</div>

View File

@ -1,72 +0,0 @@
<template>
<div>
<el-dialog
title="有奖征文进行中"
:visible.sync="dialogVisible"
:fullscreen="true"
:center="true"
custom-class="promotion-dialog"
:append-to-body ="true">
<div>
<img style="max-width: 100%;" @click="gotoStar" alt="Kuboard 有奖征文火热进行中最高可得1000元现金大奖" src="https://blog.kuboard.cn/wp-content/uploads/2019/08/banner-2-576x1024.png"></img>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="waitAMoment">一会儿再说</el-button>
<el-button type="primary" @click="gotoStar">去看看</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import Vue from 'vue'
import 'element-ui/lib/theme-chalk/index.css';
import { Dialog, Button } from 'element-ui';
Vue.component(Dialog.name, Dialog)
Vue.component(Button.name, Button)
export default {
data() {
return {
dialogVisible: false
};
},
mounted () {
// this.waitAMoment()
this.dialogVisible = (this.$page.path.indexOf('micro-service') > 0 || this.$page.path.indexOf('learning') > 0) && localStorage.getItem('promotion') !== 'compaign'
},
methods: {
waitAMoment() {
this.dialogVisible = false
if (localStorage.getItem('promotion') === 'compaign') {
return
}
let _this = this
setTimeout(_ => {
_this.dialogVisible = true
}, 60000 * 6)
},
gotoStar() {
this.dialogVisible = false
window.open('https://blog.kuboard.cn/compaign')
localStorage.setItem('promotion', 'compaign')
}
}
}
</script>
<style>
.promotion-dialog {
background-color:rgba(10,10,10,0.2);
margin-left: 0;
margin-right: 0;
padding: 0;
}
.promotion-dialog .el-dialog__body {
padding: 0;
text-align: center;
}
</style>

View File

@ -67,7 +67,7 @@
</div>
<div class="intro">
<el-card class="intro_text" shadow="hover">
<b-card class="intro_text" shadow="hover">
<p>
<h2>Kuboard</h2>
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
@ -78,7 +78,7 @@
<li>无需手写 YAML</li>
<li><a href="/install/install-dashboard.html">安装Kuboard</a></li>
</p>
</el-card>
</b-card>
<div class="intro_picture">
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
<img src="./1564841972085.gif" style="max-width: 100%;" alt="Kubernetes教程Kuboard在线演示"/>

View File

@ -1,11 +1,13 @@
<template>
<div>
<el-dialog
<b-modal
size="xl"
title="感谢阅读"
:visible.sync="dialogVisible"
width="60%"
:before-close="handleClose"
:append-to-body ="true">
centered
no-close-on-esc
no-close-on-backdrop
@hide="reset"
v-model="dialogVisible">
<div style="text-align: center; font-size: 18px; weight: 500;">
<div style="background-color: rgb(236, 245, 255); padding: 10px 10px 10px 10px; margin-bottom: 10px; border: solid 1px #007af5;">
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar">
@ -17,34 +19,31 @@
</div>
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar">
<div style="border: solid 1px #ddd;">
<img src="./star.png" style="max-width: 50vw; opacity: 0.6;">
<img src="./star.png" style="max-width: 100%; opacity: 0.6;">
</div>
</a>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="text" @click="reset" style="margin-right: 10px; color: grey;">残忍拒绝</el-button>
<span slot="modal-footer" class="dialog-footer">
<a type="text" @click="dialogVisible = false" style="margin-right: 10px; font-size: 14px; color: grey; cursor: pointer;">残忍拒绝</a>
<a href="https://github.com/eip-work/kuboard-press" target="_blank" @click="linkToStar">
够义气现在就去
<OutboundLink/>
<b-button variant="primary">
够义气现在就去
<OutboundLink/>
</b-button>
</a>
</span>
</el-dialog>
</b-modal>
</div>
</template>
<script>
import Vue from 'vue'
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)
export default {
data() {
return {
dialogVisible: false
dialogVisible: true
};
},
mounted () {
@ -105,20 +104,6 @@ export default {
this.dialogVisible = false
localStorage.setItem('stared', 'true')
this.$sendGaEvent('StarGazer', 'SG:GotoGithub', 'SG:前往github' + this.$page.path)
},
handleClose (done) {
this.$message.success('Kuboard及Kubernetes教程都是免费提供的请给一个 github star 以示鼓励')
if (window.ga) {
window.ga('send', {
hitType: 'event',
eventCategory: 'StarGazer',
eventAction: 'SG:BeforeClose',
eventLabel: 'SG:Kuboard及文档是免费提供的'
});
console.log('发送成功 ga event')
} else {
console.log('开发环境,不发送 ga event')
}
}
}
}

View File

@ -35,16 +35,16 @@ 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 src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
// ['script', { type: 'text/javascript', async: true, src: "https://bot.4paradigm.com/web/assets/ics-web-sdk-js.js" }],
// ['script', { type: 'text/javascript' }, `
// window.onload = function() {
// if (window.innerWidth > 1360) {
// 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', async: true, src: "https://bot.4paradigm.com/web/assets/ics-web-sdk-js.js" }],
['script', { type: 'text/javascript' }, `
window.onload = function() {
if (window.innerWidth > 1360) {
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>

View File

@ -1,8 +1,3 @@
// import 'swiper/dist/css/swiper.css'
import 'element-ui/lib/theme-chalk/index.css'
import Element from 'element-ui'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
@ -28,7 +23,7 @@ export default ({
router, // 当前应用的路由实例
siteData // 站点元数据
}) => {
Vue.use(Element)
Vue.use(BootstrapVue)
Vue.use(VueFractionGrid, {
approach: 'desktop-first',

View File

@ -44,3 +44,25 @@ p code {
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.42);
background-color: rgba(0, 0, 0, 0.25);
}
/*Bootstrap*/
p {
margin-bottom: 0;
margin-top: 1rem;
}
a:hover {
text-decoration: none !important;
}
h4 {
font-size: 1.25rem;
}
label {
line-height: normal;
}
.nav-item a {
padding: 0px;
}
.side-nav-item a {
padding: 2px;
}

View File

@ -1,9 +1,9 @@
<template>
<div class="page-nav" style="max-width: 1000px; padding: 1rem; text-align: center;">
<el-divider>免费在线答疑</el-divider>
<b-alert style="margin-bottom: 0;" show variant="primary">免费答疑</b-alert>
<grid :rwd="{compact: 'stack'}">
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}" >
<el-card style="height: 100%; margin-top: 1rem;" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<b-card style="height: 100%; margin-top: 1rem;" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<h4>QQ群</h4>
<div>
<!-- 一键进群 -->
@ -13,10 +13,10 @@
<p style="margin-bottom: 0; margin-top: 10px;">
<img style="margin: auto; padding: 7px; width: 135px;" src="/images/kuboard_qq.png" alt="Kubernetes教程QQ群在线答疑"/>
</p>
</el-card>
</b-card>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<b-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<h4>微信群</h4>
<div>
<div style="margin-top: 10px;">
@ -27,10 +27,10 @@
</p>
</div>
</div>
</el-card>
</b-card>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<b-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="none" :body-style="{padding: '0rem 1.5rem'}">
<h4>VIP群</h4>
<div>
<div style="margin-top: 10px;">
@ -41,7 +41,7 @@
</p>
</div>
</div>
</el-card>
</b-card>
</grid-item>
</grid>
</div>

View File

@ -44,7 +44,7 @@
<img src="/images/kuboard_qq.png" style="width: 120px;" alt="Kubernetes教程QQ群在线答疑"/>
</p> -->
</div>
<el-divider >Kuboard</el-divider>
<!-- <el-divider >Kuboard</el-divider> -->
<div style="height: 2rem;"></div>
</aside>
</template>

View File

@ -91,8 +91,10 @@ lscpu
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -101,8 +103,8 @@ curl -sSL https://kuboard.cn/install-script/v1.15.2/install-kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -112,8 +114,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.2/install-kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
## 初始化 master 节点
@ -126,9 +129,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.2/install-kubelet.sh | sh
* POD_SUBNET 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/20
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -142,8 +145,8 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.15.2/init-master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手初始化">
</b-tab>
<b-tab title="手初始化">
``` sh
# 只在 master 节点执行
@ -158,8 +161,10 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.15.2/init-master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -265,8 +270,9 @@ kubectl delete node demo-worker-x-x
> kubernetes支持多种Ingress Controllers (traefic / Kong / Istio / Nginx 等),本文推荐使用 https://github.com/nginxinc/kubernetes-ingress
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
**在 master 节点上执行**
@ -275,13 +281,15 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.15.2/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.15.2/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**

View File

@ -1,26 +1,26 @@
---
# layout: StepLayout
description: Kubernetes 最新稳定版 v1.15.3 的快速安装文档。该文档由众多网友验证并在线提出修改意见、持续不断地更新和完善、并且通过 QQ 群提供免费在线答疑的服务。
storyBook:
title: '使用 kubeadm 安装 kubernetes v1.15.3单Master节点'
initial: StoryBook
pages:
- name: introduction
title: 文档特点
- name: overview
title: 配置要求
- name: step1
title: 检查环境
- name: step2
title: 安装 docker/kubelet
- name: step3
title: 初始化 master 节点
- name: step4
title: 初始化 worker 节点
- name: step5
title: 安装 Ingress Controller
- name: step6
title: 总结
# storyBook:
# title: '使用 kubeadm 安装 kubernetes v1.15.3单Master节点'
# initial: StoryBook
# pages:
# - name: introduction
# title: 文档特点
# - name: overview
# title: 配置要求
# - name: step1
# title: 检查环境
# - name: step2
# title: 安装 docker/kubelet
# - name: step3
# title: 初始化 master 节点
# - name: step4
# title: 初始化 worker 节点
# - name: step5
# title: 安装 Ingress Controller
# - name: step6
# title: 总结
---
# 使用 kubeadm 安装 kubernetes v1.15.3
@ -84,8 +84,6 @@ export default {
}
</script>
<StoryBook>
<div slot="introduction">
## 文档特点
@ -116,8 +114,8 @@ export default {
</div>
</div> -->
</div>
<div slot="overview" style="min-height: 800px;">
<!-- </div>
<div slot="overview" style="min-height: 800px;"> -->
## 配置要求
@ -153,8 +151,8 @@ export default {
:::
</div>
<div slot="step1">
<!-- </div>
<div slot="step1"> -->
## 检查 centos / hostname
@ -194,22 +192,6 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
```
:::
<div style="display: inline-block; width: calc(100% - 400px);"></div>
<div style="display: inline-block; width: 302px; line-height: 40px; background-color: rgba(255,229,100,0.3); padding: 20px 0 0 20px; margin-bottom: 20px; border: 1px solid #d7dae2;">
<el-form :model="form" ref="envForm" :rules="rules" style="text-align: right;">
<el-form-item prop="checked" class="env-form-item">
<el-checkbox-group v-model="form.checked" style="height: 120px;">
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="centos">我的任意节点 centos 版本在兼容列表中</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="hostname">我的任意节点 hostname 不是 localhost</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="cpu">我的任意节点 CPU 内核数量大于等于 2</el-checkbox> </li>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
</div>
<div slot="step2">
## 安装 docker / kubelet
@ -218,8 +200,11 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- nfs-utils
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -228,8 +213,8 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -239,12 +224,13 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</div>
<!-- </div>
<div slot="step3">
<div slot="step3"> -->
## 初始化 master 节点
@ -257,9 +243,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
* POD_SUBNET 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/20
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -274,8 +260,8 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.15.3/init-master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手初始化">
</b-tab>
<b-tab title="手初始化">
``` sh
# 只在 master 节点执行
@ -293,10 +279,9 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -310,9 +295,9 @@ watch kubectl get pod -n kube-system -o wide
kubectl get nodes
```
</div>
<!-- </div>
<div slot="step4">
<div slot="step4"> -->
## 初始化 worker节点
@ -391,15 +376,15 @@ kubectl delete node demo-worker-x-x
* worker 节点的名字可以通过在节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
:::
</div>
<!-- </div>
<div slot="step5">
<div slot="step5"> -->
## 安装 Ingress Controller
<el-tabs type="border-card">
<el-tab-pane label="安装IngressController">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
**在 master 节点上执行**
@ -408,8 +393,8 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载IngressController">
</b-tab>
<b-tab title="卸载IngressController">
**在 master 节点上执行**
@ -422,14 +407,15 @@ kubectl delete -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.15.3/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**
@ -451,9 +437,9 @@ kubectl delete -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml
:::
</div>
<!-- </div>
<div slot="step6">
<div slot="step6"> -->
## 下一步
@ -473,5 +459,5 @@ kubectl delete -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml
:::
</div>
</StoryBook>
<!-- </div>
</StoryBook> -->

View File

@ -2,26 +2,26 @@
vssueId: 93
# layout: StepLayout
description: Kubernetes 最新稳定版 v1.15.4 的快速安装文档。该文档由众多网友验证并在线提出修改意见、持续不断地更新和完善、并且通过 QQ 群提供免费在线答疑的服务。
storyBook:
title: '使用 kubeadm 安装 kubernetes v1.15.4单Master节点'
initial: StoryBook
pages:
- name: introduction
title: 文档特点
- name: overview
title: 配置要求
- name: step1
title: 检查环境
- name: step2
title: 安装 docker/kubelet
- name: step3
title: 初始化 master 节点
- name: step4
title: 初始化 worker 节点
- name: step5
title: 安装 Ingress Controller
- name: step6
title: 总结
# storyBook:
# title: '使用 kubeadm 安装 kubernetes v1.15.4单Master节点'
# initial: StoryBook
# pages:
# - name: introduction
# title: 文档特点
# - name: overview
# title: 配置要求
# - name: step1
# title: 检查环境
# - name: step2
# title: 安装 docker/kubelet
# - name: step3
# title: 初始化 master 节点
# - name: step4
# title: 初始化 worker 节点
# - name: step5
# title: 安装 Ingress Controller
# - name: step6
# title: 总结
---
# 使用 kubeadm 安装 kubernetes v1.15.4
@ -85,8 +85,6 @@ export default {
}
</script>
<StoryBook>
<div slot="introduction">
## 文档特点
@ -117,8 +115,8 @@ export default {
</div>
</div> -->
</div>
<div slot="overview" style="min-height: 800px;">
<!-- </div>
<div slot="overview" style="min-height: 800px;"> -->
## 配置要求
@ -155,8 +153,8 @@ export default {
:::
</div>
<div slot="step1">
<!-- </div>
<div slot="step1"> -->
## 检查 centos / hostname
@ -196,22 +194,6 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
```
:::
<div style="display: inline-block; width: calc(100% - 400px);"></div>
<div style="display: inline-block; width: 302px; line-height: 40px; background-color: rgba(255,229,100,0.3); padding: 20px 0 0 20px; margin-bottom: 20px; border: 1px solid #d7dae2;">
<el-form :model="form" ref="envForm" :rules="rules" style="text-align: right;">
<el-form-item prop="checked" class="env-form-item">
<el-checkbox-group v-model="form.checked" style="height: 120px;">
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="centos">我的任意节点 centos 版本在兼容列表中</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="hostname">我的任意节点 hostname 不是 localhost</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="cpu">我的任意节点 CPU 内核数量大于等于 2</el-checkbox> </li>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
</div>
<div slot="step2">
## 安装 docker / kubelet
@ -220,8 +202,11 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- nfs-utils
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -230,8 +215,8 @@ curl -sSL https://kuboard.cn/install-script/v1.15.4/install-kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -241,12 +226,13 @@ curl -sSL https://kuboard.cn/install-script/v1.15.4/install-kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</div>
<!-- </div>
<div slot="step3">
<div slot="step3"> -->
## 初始化 master 节点
@ -259,8 +245,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.4/install-kubelet.sh | sh
* POD_SUBNET 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/20
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -275,8 +262,8 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.15.4/init-master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手初始化">
</b-tab>
<b-tab title="手初始化">
``` sh
# 只在 master 节点执行
@ -292,9 +279,9 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.15.4/init-master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -308,9 +295,9 @@ watch kubectl get pod -n kube-system -o wide
kubectl get nodes -o wide
```
</div>
<!-- </div>
<div slot="step4">
<div slot="step4"> -->
## 初始化 worker节点
@ -389,14 +376,15 @@ kubectl delete node demo-worker-x-x
* worker 节点的名字可以通过在节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
:::
</div>
<!-- </div>
<div slot="step5">
<div slot="step5"> -->
## 安装 Ingress Controller
<el-tabs type="border-card">
<el-tab-pane label="安装IngressController">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
**在 master 节点上执行**
@ -405,8 +393,9 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.15.4/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载IngressController">
</b-tab>
<b-tab title="卸载IngressController">
**在 master 节点上执行**
@ -417,13 +406,15 @@ kubectl apply -f https://kuboard.cn/install-script/v1.15.4/nginx-ingress.yaml
kubectl delete -f https://kuboard.cn/install-script/v1.15.4/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.15.4/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**
@ -445,9 +436,9 @@ kubectl delete -f https://kuboard.cn/install-script/v1.15.4/nginx-ingress.yaml
:::
</div>
<!-- </div>
<div slot="step6">
<div slot="step6"> -->
## 下一步
@ -467,5 +458,5 @@ kubectl delete -f https://kuboard.cn/install-script/v1.15.4/nginx-ingress.yaml
:::
</div>
</StoryBook>
<!-- </div>
</StoryBook> -->

View File

@ -29,87 +29,6 @@ meta:
# 使用kubeadm安装kubernetes_v1.16.0
<AdSenseTitle/>
<script>
export default {
data () {
let validateEnv = (rule, value, callback) => {
if (value.length < 4) {
callback(new Error('请确认您的环境符合上述条件'));
} else {
callback();
}
};
return {
form: {
checked: []
},
rules: {
checked: [{validator: validateEnv, trigger: 'change'}]
}
}
},
computed: {
envOk () {
if (this.form.checked.length === 4) {
return true
}
return false
}
},
mounted () {
},
watch: {
'form.checked' () {
if (this.form.checked.length === 4) {
}
},
envOk () {
if (envOk) {
let e = {
hitType: 'event',
eventCategory: 'install-k8s',
eventAction: 'envOK',
eventLabel: '安装k8s-已确认环境符合条件'
}
if (window.ga) {
window.ga('send', e);
} else {
console.log('开发环境,不发送 ga event', e)
}
}
}
},
methods: {
downloadDiagram () {
console.log('尝试发送 ga event')
if (window.ga) {
window.ga('send', {
hitType: 'event',
eventCategory: '安装K8S',
eventAction: 'Download',
eventLabel: '下载拓扑图源文件'
});
console.log('发送成功 ga event')
} else {
console.log('开发环境,不发送 ga event')
}
},
canSlideNext (currentName) {
if (currentName === 'step1' && this.form.checked.length < 3) {
this.$refs.envForm.validate(valid => {
})
return { flag: false, message: '请翻到本页最下方,并确认您的环境符合要求的条件' }
}
return { flag: true, message: 'can slide next' }
}
}
}
</script>
<!-- <StoryBook>
<div slot="introduction"> -->
@ -262,42 +181,7 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
## 安装 docker / kubelet
<!-- <transition-group name="el-zoom-in-top"> -->
<div v-show="!envOk" key="not">
<grid :rwd="{compact: 'stack'}">
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}" style="padding: 1rem 0 1rem 1rem;">
<div>
::: danger 必须选中下面的四个勾选框才能继续
* 选中后显示 **安装 docker/kubelet 的文档**
<div style="display: inline-block; width: 480px; line-height: 40px; background-color: rgba(255,229,100,0.3); padding: 20px 0 0 20px; margin-bottom: 20px; border: 1px solid #d7dae2;">
<el-form :model="form" ref="envForm" :rules="rules" style="text-align: left;">
<el-form-item prop="checked" class="env-form-item">
<el-checkbox-group v-model="form.checked">
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="centos">我的任意节点 centos 版本在兼容列表中</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="hostname">我的任意节点 hostname 不是 localhost且不包含下划线</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="cpu">我的任意节点 CPU 内核数量大于等于 2</el-checkbox> </li>
<li style="height: 40px;"> <el-checkbox style="width: 300px; text-align: left;" label="docker">我的任意节点不会直接使用 docker run 或 docker-compose 运行容器</el-checkbox> </li>
</el-checkbox-group>
</el-form-item>
</el-form>
</div>
:::
</div>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '0/1'}" style="padding: 2rem 1rem 1rem 1rem;">
<!-- <AdSenseSquare/> -->
</grid-item>
</grid>
</div>
<el-collapse-transition>
<div v-show="envOk" key="ok">
<InstallEnvCheck type="k8s">
使用 root 身份在所有节点执行如下代码,以安装软件:
- docker
@ -305,8 +189,10 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -315,8 +201,8 @@ curl -sSL https://kuboard.cn/install-script/v1.16.0/install_kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -326,11 +212,11 @@ curl -sSL https://kuboard.cn/install-script/v1.16.0/install_kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</div>
</el-collapse-transition>
</InstallEnvCheck>
<!-- </div>
<div slot="step3"> -->
@ -348,8 +234,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.0/install_kubelet.sh | sh
* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -363,8 +250,9 @@ export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.0/init_master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手工初始化">
</b-tab>
<b-tab title="手动初始化">
``` sh
# 只在 master 节点执行
@ -380,8 +268,9 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.16.0/init_master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -484,9 +373,9 @@ kubectl delete node demo-worker-x-x
## 安装 Ingress Controller
<el-tabs type="border-card">
<el-tab-pane label="安装IngressController">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
**在 master 节点上执行**
@ -495,8 +384,9 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载IngressController">
</b-tab>
<b-tab title="卸载IngressController">
**在 master 节点上执行**
@ -507,14 +397,15 @@ kubectl apply -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml
kubectl delete -f https://kuboard.cn/install-script/v1.16.0/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.16.0/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**

View File

@ -197,8 +197,10 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -207,8 +209,8 @@ curl -sSL https://kuboard.cn/install-script/v1.16.1/install_kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -218,8 +220,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.1/install_kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</InstallEnvCheck>
<!-- </div>
@ -239,8 +242,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.1/install_kubelet.sh | sh
* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -254,8 +258,9 @@ export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.1/init_master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手工初始化">
</b-tab>
<b-tab title="手动初始化">
``` sh
# 只在 master 节点执行
@ -271,8 +276,9 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.16.1/init_master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -375,9 +381,9 @@ kubectl delete node demo-worker-x-x
## 安装 Ingress Controller
<el-tabs type="border-card">
<el-tab-pane label="安装IngressController">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
**在 master 节点上执行**
@ -386,8 +392,9 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.16.1/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载IngressController">
</b-tab>
<b-tab title="卸载IngressController">
**在 master 节点上执行**
@ -398,14 +405,15 @@ kubectl apply -f https://kuboard.cn/install-script/v1.16.1/nginx-ingress.yaml
kubectl delete -f https://kuboard.cn/install-script/v1.16.1/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.16.1/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**

View File

@ -115,8 +115,9 @@ hostnamectl status
- nfs-utils
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -125,8 +126,8 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -136,8 +137,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
<!-- </div>
@ -171,8 +173,9 @@ curl -sSL https://kuboard.cn/install-script/v1.15.3/install-kubelet.sh | sh
* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/16
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
在第一个 master 节点 demo-master-a-1 上执行
@ -186,8 +189,8 @@ echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.15.3/init-master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手初始化">
</b-tab>
<b-tab title="手初始化">
``` sh
# 只在 master 节点执行
@ -200,8 +203,9 @@ echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.15.3/init-master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
***执行结果***
@ -256,8 +260,9 @@ kubectl get nodes
**获得 master 节点的 join 命令**
<el-tabs type="border-card">
<el-tab-pane label="和第一个Master节点一起初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="和第一个Master节点一起初始化" active>
初始化第一个 master 节点时的输出内容中第15、16、17行就是用来初始化第二、三个 master 节点的命令,如下所示:<font color="red">此时请不要执行该命令</font>
@ -267,8 +272,8 @@ kubectl get nodes
--control-plane --certificate-key 41a741533a038a936759aff43b5680f0e8c41375614a873ea49fde8944614dd6
```
</el-tab-pane>
<el-tab-pane label="第一个Master节点初始化2个小时后再初始化">
</b-tab>
<b-tab title="第一个Master节点初始化2个小时后再初始化">
**获得 certificate key**
@ -314,8 +319,9 @@ kubeadm join apiserver.demo:6443 --token bl80xo.hfewon9l5jlpmjft --discovery
--control-plane --certificate-key <font color="red">70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c</font>
</div>
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**初始化第二、三个 master 节点**
@ -350,8 +356,9 @@ kubectl get nodes
### 获得 join命令参数
<el-tabs type="border-card">
<el-tab-pane label="和第一个Master节点一起初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="和第一个Master节点一起初始化" active>
初始化第一个 master 节点时的输出内容中第25、26行就是用来初始化 worker 节点的命令,如下所示:<font color="red">此时请不要执行该命令</font>
@ -360,8 +367,8 @@ kubectl get nodes
--discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6
```
</el-tab-pane>
<el-tab-pane label="第一个Master节点初始化2个小时后再初始化">
</b-tab>
<b-tab title="第一个Master节点初始化2个小时后再初始化">
**在第一个 master 节点 demo-master-a-1 节点执行**
@ -376,8 +383,9 @@ kubeadm token create --print-join-command
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
```
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
### 初始化worker
@ -440,8 +448,9 @@ kubectl delete node demo-worker-x-x
> kubernetes支持多种Ingress Controllers (traefic / Kong / Istio / Nginx 等),本文推荐使用 https://github.com/nginxinc/kubernetes-ingress
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
**在 master 节点上执行**
@ -450,13 +459,14 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.15.3/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.15.3/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
::: warning
如果您打算将 Kubernetes 用于生产环境,请参考此文档 [Installing Ingress Controller](https://github.com/nginxinc/kubernetes-ingress/blob/v1.5.3/docs/installation.md),完善 Ingress 的配置

View File

@ -68,8 +68,9 @@ meta:
## 安装
<el-tabs type="border-card">
<el-tab-pane label="安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="安装" active>
安装 Kuboard。
@ -79,9 +80,8 @@ meta:
kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载">
</b-tab>
<b-tab title="卸载">
卸载 Kuboard
@ -89,8 +89,9 @@ kubectl apply -f https://kuboard.cn/install-script/kuboard.yaml
kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml
```
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
<!-- </div>
@ -100,8 +101,9 @@ kubectl delete -f https://kuboard.cn/install-script/kuboard.yaml
您可以获得管理员用户、只读用户的Token
<el-tabs type="border-card">
<el-tab-pane label="管理员用户">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="管理员用户" active>
**拥有的权限**
@ -133,8 +135,8 @@ namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWc4aHhiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDhiYjVlNi04Y2RjLTExZTktYjY3ZS1mYTE2M2U1ZjdhMGYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.DZ6dMTr8GExo5IH_vCWdB_MDfQaNognjfZKl0E5VW8vUFMVvALwo0BS-6Qsqpfxrlz87oE9yGVCpBYV0D00811bLhHIg-IR_MiBneadcqdQ_TGm_a0Pz0RbIzqJlRPiyMSxk1eXhmayfPn01upPdVCQj6D3vAY77dpcGplu3p5wE6vsNWAvrQ2d_V1KhR03IB1jJZkYwrI8FHCq_5YuzkPfHsgZ9MBQgH-jqqNXs6r8aoUZIbLsYcMHkin2vzRsMy_tjMCI9yXGiOqI-E5efTb-_KbDVwV5cbdqEIegdtYZ2J3mlrFQlmPGYTwFI8Ba9LleSYbCi4o0k74568KcN_w
```
</el-tab-pane>
<el-tab-pane label="只读用户">
</b-tab>
<b-tab title="只读用户">
**拥有的权限**
@ -174,8 +176,9 @@ namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWc4aHhiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDhiYjVlNi04Y2RjLTExZTktYjY3ZS1mYTE2M2U1ZjdhMGYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.DZ6dMTr8GExo5IH_vCWdB_MDfQaNognjfZKl0E5VW8vUFMVvALwo0BS-6Qsqpfxrlz87oE9yGVCpBYV0D00811bLhHIg-IR_MiBneadcqdQ_TGm_a0Pz0RbIzqJlRPiyMSxk1eXhmayfPn01upPdVCQj6D3vAY77dpcGplu3p5wE6vsNWAvrQ2d_V1KhR03IB1jJZkYwrI8FHCq_5YuzkPfHsgZ9MBQgH-jqqNXs6r8aoUZIbLsYcMHkin2vzRsMy_tjMCI9yXGiOqI-E5efTb-_KbDVwV5cbdqEIegdtYZ2J3mlrFQlmPGYTwFI8Ba9LleSYbCi4o0k74568KcN_w
```
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
<!-- </div>
@ -185,9 +188,9 @@ token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2Nv
您可以通过NodePort、port-forward 两种方式当中的任意一种访问 Kuboard
<el-tabs type="border-card">
<el-tab-pane label="通过NodePort访问">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="通过NodePort访问" active>
Kuboard Service 使用了 NodePort 的方式暴露服务NodePort 为 32567您可以按如下方式访问 Kuboard。
@ -202,8 +205,8 @@ http://任意一个Worker节点的IP地址:32567/
* 您也可以修改 Kuboard.yaml 文件,使用自己定义的 NodePort 端口号
:::
</el-tab-pane>
<el-tab-pane label="通过port-forward访问">
</b-tab>
<b-tab title="通过port-forward访问">
在您的客户端电脑中执行如下命令
@ -222,8 +225,9 @@ kubectl port-forward service/kuboard 8080:80 -n kube-system
需要您先完成 [从客户端电脑远程管理 Kubernetes](install-kubectl.html) 的配置
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
<!-- </div>

View File

@ -22,8 +22,9 @@ meta:
## 启用 Kubernetes 集群
<el-tabs type="border-card">
<el-tab-pane label="MAC">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="MAC" active>
* **启动 docker-desktop**
@ -41,10 +42,11 @@ meta:
<img src="./install-docker-desktop.assets/image-20190914223501758.png" style="max-width: 600px;" alt="Kubernetes教程DockerDesktop"/>
</p>
</el-tab-pane>
<el-tab-pane label="Windows">
</b-tab>
<b-tab title="Windows">
具体操作与 Mac 的操作过程相似,已有许多网友验证过。作者使用的是 MAC 电脑,所以未能提供 Windows 上的截图。
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>

View File

@ -37,8 +37,8 @@ meta:
## 文档特点
<div style="min-height: 645px;">
<InstallBanner version="v1.16.2" updateCount="65" style="min-height: 750px;"/>
<div style="min-height: 300px;">
<InstallBanner version="v1.16.2" updateCount="65"/>
</div>
<!-- </div>
@ -174,8 +174,10 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -184,8 +186,8 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -195,8 +197,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</InstallEnvCheck>
@ -219,8 +222,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请仍然执行 export POD_SUBNET=10.100.0.1/16 命令,不做修改
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
``` sh
# 只在 master 节点执行
@ -234,8 +238,9 @@ export POD_SUBNET=10.100.0.1/16
echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.2/init_master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手工初始化">
</b-tab>
<b-tab title="手动初始化">
``` sh
# 只在 master 节点执行
@ -251,8 +256,9 @@ echo "${MASTER_IP} ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.16.2/init_master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**检查 master 初始化结果**
@ -328,8 +334,9 @@ demo-worker-a-2 Ready <none> 3m56s v1.16.2
## 移除 worker 节点
<el-collapse style="margin-top: 20px;">
<el-collapse-item title="正常情况下,您无需移除 worker 节点,如果添加到集群出错,您可以移除 worker 节点,再重新尝试添加。点我查看具体步骤。" name="1">
<b-button v-b-toggle.collapse-1 variant="outline-danger" size="sm" style="margin-top: 1rem;">添加节点出错时,可移除节点重新添加</b-button>
<b-collapse id="collapse-1" class="mt-2">
<b-card>
::: warning
正常情况下,您无需移除 worker 节点,如果添加到集群出错,您可以移除 worker 节点,再重新尝试添加
@ -354,8 +361,8 @@ kubectl delete node demo-worker-x-x
* worker 节点的名字可以通过在节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
:::
</el-collapse-item>
</el-collapse>
</b-card>
</b-collapse>
<!-- </div>
@ -364,9 +371,9 @@ kubectl delete node demo-worker-x-x
## 安装 Ingress Controller
<el-tabs type="border-card">
<el-tab-pane label="安装IngressController">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
**在 master 节点上执行**
@ -375,8 +382,9 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="卸载IngressController">
</b-tab>
<b-tab title="卸载IngressController">
**在 master 节点上执行**
@ -387,14 +395,15 @@ kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
kubectl delete -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.16.2/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**配置域名解析**

View File

@ -24,8 +24,9 @@ Kubernetes 官网文档参照 [安装 kubectl](https://kubernetes.io/docs/tasks/
请参考下述内容,完成 kubectl 的安装
<el-tabs type="border-card">
<el-tab-pane label="Linux">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="Linux" active>
**配置K8S的yum源**
@ -54,19 +55,20 @@ yum install -y kubectl
kubectl version
```
</b-tab>
<b-tab title="Windows">
</el-tab-pane>
<el-tab-pane label="Windows">
待完善
</el-tab-pane>
<el-tab-pane label="MAC">
</b-tab>
<b-tab title="MAC">
待完善
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
## 获取 kubectl config 文件
@ -104,8 +106,9 @@ users:
在客户端电脑完成如下配置,即可远程管理 Kubernetes 集群
<el-tabs type="border-card">
<el-tab-pane label="Linux">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="Linux" active>
**执行命令**
@ -134,18 +137,19 @@ kubectl get pods -n kube-system
```
</el-tab-pane>
<el-tab-pane label="Windows">
</b-tab>
<b-tab title="Windows">
待完善
</el-tab-pane>
<el-tab-pane label="MAC">
</b-tab>
<b-tab title="MAC">
待完善
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
## kubectl 参考文档推荐

View File

@ -118,8 +118,9 @@ echo "127.0.0.1 $(hostname)" >> /etc/hosts
- nfs-utils
- kubectl / kubeadm / kubelet
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
``` sh
# 在 master 节点和 worker 节点都要执行
@ -128,8 +129,8 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手动安装">
</b-tab>
<b-tab title="手动安装">
手动执行以下代码,效果与快速安装完全相同。
@ -139,8 +140,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
如果此时执行 `service status kubelet` 命令,将得到 kubelet 启动失败的错误提示,请忽略此错误,因为必须完成后续步骤中 kubeadm init 的操作kubelet 才能正常启动
:::
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</InstallEnvCheck>
@ -183,8 +185,9 @@ curl -sSL https://kuboard.cn/install-script/v1.16.2/install_kubelet.sh | sh
* **POD_SUBNET** 所使用的网段不能与 ***master节点/worker节点*** 所在的网段重叠。该字段的取值为一个 <a href="/glossary/cidr.html" target="_blank">CIDR</a> 值,如果您对 CIDR 这个概念还不熟悉,请不要修改这个字段的取值 10.100.0.1/16
:::
<el-tabs type="border-card">
<el-tab-pane label="快速初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速初始化" active>
在第一个 master 节点 demo-master-a-1 上执行
@ -198,8 +201,8 @@ echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.16.2/init_master.sh | sh
```
</el-tab-pane>
<el-tab-pane label="手初始化">
</b-tab>
<b-tab title="手初始化">
``` sh
# 只在第一个 master 节点执行
@ -212,8 +215,9 @@ echo "127.0.0.1 ${APISERVER_NAME}" >> /etc/hosts
<<< @/.vuepress/public/install-script/v1.16.2/init_master.sh
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
***执行结果***
@ -277,8 +281,9 @@ kubectl get nodes
> * 添加第二、三个Master节点
> * 初始化 master 节点的 token 有效时间为 2 小时
<el-tabs type="border-card">
<el-tab-pane label="和第一个Master节点一起初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="和第一个Master节点一起初始化" active>
初始化第一个 master 节点时的输出内容中第15、16、17行就是用来初始化第二、三个 master 节点的命令,如下所示:<font color="red">此时请不要执行该命令</font>
@ -288,8 +293,8 @@ kubectl get nodes
--control-plane --certificate-key 41a741533a038a936759aff43b5680f0e8c41375614a873ea49fde8944614dd6
```
</el-tab-pane>
<el-tab-pane label="第一个Master节点初始化2个小时后再初始化">
</b-tab>
<b-tab title="第一个Master节点初始化2个小时后再初始化">
**获得 certificate key**
@ -335,8 +340,9 @@ kubeadm join apiserver.demo:6443 --token bl80xo.hfewon9l5jlpmjft --discovery
--control-plane --certificate-key <font color="red">70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c</font>
</div>
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
**初始化第二、三个 master 节点**
@ -399,9 +405,9 @@ kubectl get nodes
### 获得 join命令参数
<el-tabs type="border-card">
<el-tab-pane label="和第一个Master节点一起初始化">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="和第一个Master节点一起初始化" active>
初始化第一个 master 节点时的输出内容中第25、26行就是用来初始化 worker 节点的命令,如下所示:<font color="red">此时请不要执行该命令</font>
@ -410,8 +416,8 @@ kubectl get nodes
--discovery-token-ca-cert-hash sha256:959569cbaaf0cf3fad744f8bd8b798ea9e11eb1e568c15825355879cf4cdc5d6
```
</el-tab-pane>
<el-tab-pane label="第一个Master节点初始化2个小时后再初始化">
</b-tab>
<b-tab title="第一个Master节点初始化2个小时后再初始化">
**在第一个 master 节点 demo-master-a-1 节点执行**
@ -426,8 +432,9 @@ kubeadm token create --print-join-command
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
```
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
::: tip 有效时间
该 token 的有效时间为 2 个小时2小时内您可以使用此 token 初始化任意数量的 worker 节点。
@ -495,8 +502,9 @@ kubectl delete node demo-worker-x-x
> kubernetes支持多种Ingress Controllers (traefic / Kong / Istio / Nginx 等),本文推荐使用 https://github.com/nginxinc/kubernetes-ingress
<el-tabs type="border-card">
<el-tab-pane label="快速安装">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="快速安装" active>
**在 master 节点上执行**
@ -505,13 +513,14 @@ kubectl delete node demo-worker-x-x
kubectl apply -f https://kuboard.cn/install-script/v1.16.2/nginx-ingress.yaml
```
</el-tab-pane>
<el-tab-pane label="YAML文件">
</b-tab>
<b-tab title="YAML文件">
<<< @/.vuepress/public/install-script/v1.16.2/nginx-ingress.yaml
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
::: warning
如果您打算将 Kubernetes 用于生产环境,请参考此文档 [Installing Ingress Controller](https://github.com/nginxinc/kubernetes-ingress/blob/v1.5.3/docs/installation.md),完善 Ingress 的配置

View File

@ -58,8 +58,10 @@ Deployment 处于 master 节点上,通过发布 Deploymentmaster 节点会
* 使用 Kuboard
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
**创建 YAML 文件**
@ -135,8 +137,8 @@ kubectl get deployments
kubectl get pods
```
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
**打开 Kuboard 集群概览界面**,如下图所示:
@ -177,8 +179,9 @@ kubectl get pods
此时可查看到该应用的部署结果
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
可分别查看到一个名为 nginx-deployment 的 Deployment 和一个名为 nginx-deployment-xxxxxxx 的 Pod

View File

@ -62,8 +62,9 @@ Pod容器组总是在 **Node节点** 上运行。Node节点
## 实战:故障排除
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
在[部署第一个应用程序](./deploy-app.html) 中,我们使用了 kubectl 命令行界面部署了 nginx 并且查看了 Deployment 和 Pod。kubectl 还有如下四个常用命令,在我们排查问题时可以提供帮助:
@ -127,8 +128,8 @@ Pod容器组总是在 **Node节点** 上运行。Node节点
请尝试在您的集群中执行一下上述的几个命令,了解如何通过 kubectl 操作 kubernetes 集群中的 Node、Pod、Container。
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
**在名称空间中查看部署**
@ -139,8 +140,9 @@ Pod容器组总是在 **Node节点** 上运行。Node节点
![Kubernetes教程查看 Pods/Nodes](./explore.assets/image-20190822172457417.png)
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
::: tip
Worker节点是k8s中的工作计算机可能是VM或物理计算机具体取决于群集。多个Pod可以在一个节点上运行。

View File

@ -79,8 +79,9 @@ Labels标签可以在创建 Kubernetes 对象时附加上去,也可以
<SharingBlock>
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
创建nginx的Deployment中定义了Labels如下
@ -166,8 +167,8 @@ curl <任意节点的 IP>:32600
```
> 如果您的集群在云上,您可能通过云服务商的安全组开放 32600 端口的访问
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
* 在 default 名称空间 点击 ***展现层 --> Nginx部署***
@ -193,8 +194,9 @@ curl <任意节点的 IP>:32600
在浏览器打开 `http://<任意节点的 IP>:32601`
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
~~到目前为止,我们已经成功部署好项目,并能够对其进行访问,

View File

@ -46,8 +46,9 @@ spec:
<SharingBlock>
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
**修改 nginx-deployment.yaml 文件**
@ -89,8 +90,8 @@ kubectl apply -f nginx-deployment.yaml
watch kubectl get pods -o wide
```
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
* 在 default 名称空间 点击 ***展现层 --> Nginx部署***
@ -108,8 +109,9 @@ watch kubectl get pods -o wide
![Kubernetes教程伸缩应用-Scaling](./scale.assets/image-20190822213709967.png)
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
~~一旦运行了多个应用程序实例,就可以在不停机的情况下执行滚动更新了,

View File

@ -55,8 +55,9 @@ meta:
<SharingBlock>
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
**修改 nginx-deployment.yaml 文件**
@ -99,8 +100,8 @@ kubectl apply -f nginx-deployment.yaml
watch kubectl get pods -l app=nginx
```
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
* **进入 default 名称空间**
@ -124,8 +125,9 @@ watch kubectl get pods -l app=nginx
![Kubernetes教程执行滚动更新-过程](./update.assets/image-20190822214503847.png)
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
~~呱唧呱唧恭喜您即将成为k8s的大神的您已经迈进了您k8s的最重要的一步了--入门那么接下来请再接再厉继续征服k8s的高峰

View File

@ -132,8 +132,9 @@ spec:
* 假设您已经将 Ingress 融入到您的网络拓扑中,并且将 `*.demo.kuboard.cn` (请使用您自己的域名)解析到对应的外网 IP 地址
:::
<el-tabs type="border-card">
<el-tab-pane label="使用kubectl">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用kubectl" active>
**创建文件 nginx-deployment.yaml**
``` sh
@ -237,8 +238,8 @@ kubectl get ingress -o wide
curl a.demo.kuboard.cn
```
</el-tab-pane>
<el-tab-pane label="使用Kuboard">
</b-tab>
<b-tab title="使用Kuboard">
* 在 default 名称空间 点击 ***创建工作负载***
@ -273,8 +274,9 @@ Kuboard 工作负载编辑器将 kubernetes 中三个主要对象 Deployment/Ser
在浏览器打开 `http://a.demo.kuboard.cn` (请使用您自己的域名)
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
</SharingBlock>

View File

@ -15,9 +15,9 @@ meta:
如果您想使用 Deployment 将最新的应用程序版本发布给一部分用户(或服务器),您可以为每个版本创建一个 Deployment此时应用程序的新旧两个版本都可以同时获得生产上的流量。
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 执行金丝雀发布">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 执行金丝雀发布" active>
* 部署第一个版本
@ -95,9 +95,8 @@ meta:
* 当您确定新的版本没有问题之后,可以将 `nginx-deployment` 的镜像标签修改为新版本的镜像标签,并在完成对 `nginx-deployment` 的滚动更新之后,删除 `nginx-deployment-canary` 这个 Deployment
</el-tab-pane>
<el-tab-pane label="使用 Kuboard 执行金丝雀发布">
</b-tab>
<b-tab title="使用 Kuboard 执行金丝雀发布">
在 Kuboard 执行金丝雀发布的过程,与使用 kubectl 的过程相同,此处特别说明的一点是,当使用 Kuboard 创建 `web-nginx-canary` Deployment时如何解决其Pod 的标签被 `web-nginx` 的Service包含的问题
@ -108,9 +107,9 @@ meta:
![Kubernetes教程_在Kuboard中执行金丝雀发布](./canary.assets/image-20191013204426338.png)
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
::: danger 局限性
按照 Kubernetes 默认支持的这种方式进行金丝雀发布,有一定的局限性:

View File

@ -15,9 +15,9 @@ meta:
本文描述了如何创建一个 Deployment如何理解 Deployment 各个字段,以及如何查看 Deployment 的创建结果。
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 创建 Deployment">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 创建 Deployment" active>
下面的 yaml 文件定义了一个 Deployment该 Deployment 将创建一个有 3 个 nginx Pod 副本的 ReplicaSet副本集
@ -131,15 +131,14 @@ spec:
pod-template-hash 标签时 Deployment 创建 ReplicaSet 时添加到 ReplicaSet 上的ReplicaSet 进而将此标签添加到 Pod 上。这个标签用于区分 Deployment 中哪个 ReplicaSet 创建了哪些 Pod。该标签的值是 `.spec.template` 的 hash 值。
</el-tab-pane>
<el-tab-pane label="使用 Kuboard 创建 Deployment">
</b-tab>
<b-tab title="使用 Kuboard 创建 Deployment">
正在撰写
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
[返回 Deployment](./#deployment-概述)

View File

@ -17,9 +17,9 @@ meta:
以我们在 [创建Deployment](./create.html) 中创建的 Deployment 为例。
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 暂停 Deployment">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 暂停 Deployment" active>
* 执行命令 `kubectl get deployment`,查看 Deployment 信息,输出结果如下所示:
@ -102,14 +102,15 @@ meta:
您不能回滚rollback一个已暂停的 Deployment除非您继续resume该 Deployment。
:::
</el-tab-pane>
</b-tab>
<b-tab title="使用 Kuboard 暂停 Deployment">
<el-tab-pane label="使用 Kuboard 暂停 Deployment">
正在撰写中
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
[返回 Deployment](./#deployment-概述)

View File

@ -20,9 +20,9 @@ meta:
:::
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 回滚 Deployment">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 回滚 Deployment" active>
<h2>模拟更新错误</h2>
@ -218,14 +218,13 @@ meta:
Normal ScalingReplicaSet 15s deployment-controller Scaled down replica set nginx-deployment-595696685f to 0
```
</el-tab-pane>
<el-tab-pane label="使用 Kuboard 回滚 Deployment">
</b-tab>
<b-tab title="使用 Kuboard 回滚 Deployment">
正在撰写中
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
[返回 Deployment](./#deployment-概述)

View File

@ -15,9 +15,9 @@ meta:
伸缩Scaling Deployment是指改变 Deployment 中 Pod 的副本数量,以应对实际业务流量的变化。
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 伸缩 Deployment">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 伸缩 Deployment" active>
<h2>执行伸缩</h2>
@ -82,13 +82,14 @@ meta:
nginx-deployment-618515232 11 11 11 7m
```
</el-tab-pane>
</b-tab>
<b-tab title="使用 Kuboard 伸缩 Deployment">
<el-tab-pane label="使用 Kuboard 伸缩 Deployment">
正在撰写中
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
[返回 Deployment](./#deployment-概述)

View File

@ -18,9 +18,9 @@ Deployment 的生命周期中,将会进入不同的状态,这些状态可能
* complete
* fail to progress
<el-tabs type="border-card">
<el-tab-pane label="使用 kubectl 查看 Deployment 状态">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 查看 Deployment 状态" active>
<h2>Progressing 状态</h2>
@ -161,13 +161,14 @@ $ echo $?
* 回滚到前一个版本
* 暂停pauseDeployment以对 Deployment 的 Pod template 执行多处更新
</el-tab-pane>
</b-tab>
<b-tab title="使用 Kuboard 查看 Deployment 状态">
<el-tab-pane label="使用 Kuboard 查看 Deployment 状态">
正在撰写中
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
[返回 Deployment](./#deployment-概述)

View File

@ -23,9 +23,10 @@ meta:
* 使用 kubectl 更新 Deployment
* 使用 Kuboard 更新 Deployment
<el-tabs type="border-card">
<b-card>
<b-tabs content-class="mt-3">
<b-tab title="使用 kubectl 更新 Deployment" active>
<el-tab-pane label="使用 kubectl 更新 Deployment">
**使用下述步骤更新您的 Deployment**
@ -143,14 +144,14 @@ meta:
* 当您更新 Deployment 时Deployment Controller 先创建一个新的 ReplicaSet (nginx-deployment-1564180365) 并将其 scale up 到 1 个副本,然后 scale down 旧的 ReplicaSet 到 2。
* Deployment Controller 继续 scale up 新的 ReplicaSet 并 scale down 旧的 ReplicaSet直到最后新旧两个 ReplicaSet一个副本数为 3另一个副本数为 0。
</el-tab-pane>
</b-tab>
<b-tab title="使用 Kuboard 更新 Deployment">
<el-tab-pane label="使用 Kuboard 更新 Deployment">
正在撰写中
</el-tab-pane>
</el-tabs>
</b-tab>
</b-tabs>
</b-card>
## 覆盖更新 Rollover (更新过程中再更新)

View File

@ -36,7 +36,7 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
align-content: stretch;
justify-content: space-between;">
<div style="flex-grow: 1; flex-basis: 20%; min-width: 200px; cursor: pointer; padding: 1rem 0.5rem;" @click="$router.push({path: '/install/install-k8s.html'})">
<el-card shadow="hover" style="height: 225px;">
<b-card shadow="hover" style="height: 225px;">
<h2 style="font-size: 1.1rem; font-weight: 500; border-bottom: none; padding-bottom: 0; color: #3a5169;">
Kubernetes安装文档
</h2>
@ -49,11 +49,11 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
<li style="color: #4e6e8e;">
碰到问题可QQ在线答疑
</li>
</el-card>
</b-card>
</div>
<div style="flex-grow: 1; flex-basis: 20%; min-width: 200px; cursor: pointer; padding: 1rem 0.5rem;" @click="$router.push({path: '/learning/'})">
<el-card shadow="hover" style="height: 225px;">
<b-card shadow="hover" style="height: 225px;">
<h2 style="font-size: 1.1rem; font-weight: 500; border-bottom: none; padding-bottom: 0; color: #3a5169;">
Kubernetes免费教程
</h2>
@ -63,11 +63,11 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
<li style="color: #4e6e8e;">
活跃的QQ社群与网友共同学习进步
</li>
</el-card>
</b-card>
</div>
<div style="flex-grow: 1; flex-basis: 20%; min-width: 200px; cursor: pointer; padding: 1rem 0.5rem;" @click="$router.push({path: '/install/install-dashboard.html'})">
<el-card shadow="hover" style="height: 225px;">
<b-card shadow="hover" style="height: 225px;">
<h2 style="font-size: 1.1rem; font-weight: 500; border-bottom: none; padding-bottom: 0; color: #3a5169;">
Kubernetes管理界面
</h2>
@ -77,18 +77,18 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
<li style="color: #4e6e8e;">
免费
</li>
</el-card>
</b-card>
</div>
<div style="flex-grow: 1; flex-basis: 20%; min-width: 200px; cursor: pointer; padding: 1rem 0.5rem;" @click="$router.push({path: '/learning/k8s-practice/ocp/'})">
<el-card shadow="hover" style="height: 225px;">
<b-card shadow="hover" style="height: 225px;">
<h2 style="font-size: 1.1rem; font-weight: 500; border-bottom: none; padding-bottom: 0; color: #3a5169;">
Kubernetes + SpringCloud实战
</h2>
<li style="color: #4e6e8e;">
参考文档一步一步完成Spring Cloud微服务架构在Kubernetes上的部署和管理
</li>
</el-card>
</b-card>
</div>
</div>
@ -98,7 +98,7 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
<grid :rwd="{compact: 'stack'}" style="margin-top: 1rem;">
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}" >
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7;" shadow="hover">
<b-card style="height: 100%; color: #2c3e50; line-height: 1.7;" shadow="hover">
<p>
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
Kuboard 在线体验
@ -107,16 +107,16 @@ Kuboard是一款免费的 Kubernetes 图形化管理工具Kuboard 力图
<p>
为保证环境的稳定性,在线 Demo 中只提供只读权限。<span style="color: #F56C6C; font-weight: 500;">请在PC浏览器中打开</span>
</p>
</el-card>
</b-card>
</grid-item>
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%" shadow="hover">
<b-card style="height: 100%" shadow="hover">
<a target="_blank" :href="`http://demo.kuboard.cn/#/dashboard?k8sToken=${$site.themeConfig.kuboardToken}`">
<p style="max-width: 100%;">
<img src="./README.assets/1564841972085.gif" style="border: 1px solid #d7dae2; max-width: 100%;" alt="Kubernetes教程Kuboard 在线Demo"></img>
</p>
</a>
</el-card>
</b-card>
</grid-item>
</grid>

41
package-lock.json generated
View File

@ -1673,14 +1673,6 @@
"resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz",
"integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="
},
"async-validator": {
"version": "1.8.5",
"resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1571196860077&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
"integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
"requires": {
"babel-runtime": "6.x"
}
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
@ -1774,11 +1766,6 @@
"babylon": "^6.18.0"
}
},
"babel-helper-vue-jsx-merge-props": {
"version": "2.0.3",
"resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
"integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY="
},
"babel-loader": {
"version": "8.0.6",
"resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz",
@ -3307,19 +3294,6 @@
"resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.296.tgz?cache=0&sync_timestamp=1571976210878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.296.tgz",
"integrity": "sha1-odQyLXQjF5RShdO6iJZlYbZ/Osg="
},
"element-ui": {
"version": "2.12.0",
"resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.12.0.tgz",
"integrity": "sha1-qJO8Ea5Pfbt+nVQWBvI+ZD8THuQ=",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
"deepmerge": "^1.2.0",
"normalize-wheel": "^1.0.1",
"resize-observer-polyfill": "^1.5.0",
"throttle-debounce": "^1.0.1"
}
},
"elliptic": {
"version": "6.5.1",
"resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.1.tgz?cache=0&sync_timestamp=1567592249994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.1.tgz",
@ -5950,11 +5924,6 @@
"sort-keys": "^2.0.0"
}
},
"normalize-wheel": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
},
"npm": {
"version": "6.12.1",
"resolved": "https://registry.npm.taobao.org/npm/download/npm-6.12.1.tgz?cache=0&sync_timestamp=1572369279209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm%2Fdownload%2Fnpm-6.12.1.tgz",
@ -10363,11 +10332,6 @@
"resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz",
"integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc="
},
"resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresize-observer-polyfill%2Fdownload%2Fresize-observer-polyfill-1.5.1.tgz",
"integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
},
"resolve": {
"version": "1.12.0",
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.12.0.tgz",
@ -11336,11 +11300,6 @@
"resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
},
"throttle-debounce": {
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz",
"integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz",

View File

@ -26,7 +26,6 @@
"animated-number-vue": "^1.0.0",
"bootstrap": "^4.3.1",
"bootstrap-vue": "^2.0.4",
"element-ui": "^2.12.0",
"esm": "^3.2.25",
"npm": "^6.11.3",
"reduce-css-calc": "^2.1.6",

View File

@ -26,7 +26,7 @@ export default {
<grid :rwd="{compact: 'stack'}">
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: calc(100% - 1.5rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="none">
<b-card style="height: calc(100% - 1.5rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem; border-color: #f2be45; background-color: rgba(242, 190, 69, 0.1)" shadow="none">
* 使用 Kuboard 是 <font color="red">免费</font> 的,无论您是用于学习还是用于生产
* 将来会推出 Kuboard Plus当前所有的功能<font color="red">将来仍然免费</font>。Kuboard Plus 侧重点:
@ -34,16 +34,16 @@ export default {
* 审计日志
* 只要您在本文末尾的评论区留下公司名字,您就已经 **取得将 Kuboard 用于生产环境的授权**
</el-card>
</b-card>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: calc(100% - 1.5rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<div style="background-color: rgb(0, 99, 220); padding: 10px; max-width: 200px;">
<b-card style="height: calc(100% - 1.5rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<div style="background-color: rgb(0, 99, 220); padding: 10px; max-width: 220px;">
<img src="/favicon.png" style="max-width: 200px;">
</div>
</el-card>
</b-card>
</grid-item>
</grid>
@ -54,16 +54,16 @@ export default {
<div style="padding: 1rem 0 0 0;">
<grid :rwd="{compact: 'stack'}">
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: calc(100% - 2rem); margin-top: 1rem;" shadow="none">
<b-card style="height: calc(100% - 2rem); margin-top: 1rem;" shadow="none">
<img src="./index.assets/stars.png" alt="Kubernetes教程_Kuboard_Github_Star">
</el-card>
</b-card>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: calc(100% - 2rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<b-card style="height: calc(100% - 2rem); color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<li>Kuboard 诞生于大型微服务项目的落地实施,在其发布之前,就已经在许多个实际项目中经受住了考验</li>
<li>Kuboard 于2019年8月初公开发布不到三个月时间就已经获得了 855 Github Star如图所示当前 <StarCount></StarCount></li>
<li>Kuboard 社群中,已有许多的用户将 Kuboard 用于自己的生产环境</li>
</el-card>
</b-card>
</grid-item>
</grid>
</div>
@ -73,20 +73,20 @@ export default {
<div style="padding: 1rem 0;">
<grid :rwd="{compact: 'stack'}">
<grid-item size="2/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<b-card style="height: 100%; color: #2c3e50; line-height: 1.7; margin-top: 1rem;" shadow="none">
<h3>服务范围</h3>
<li>Kubernetes 企业培训</li>
<li>DevOps 环境搭建及培训</li>
<li>SpringCloud 微服务架构咨询</li>
<li>Kubernetes 投产支持及问题解决</li>
<li>Kuboard 定制化</li>
</el-card>
</b-card>
</grid-item>
<grid-item size="1/3" :rwd="{tablet: '1/1', compact: '1/1'}">
<el-card style="height: 100%; margin-top: 1rem;" shadow="none">
<b-card style="height: 100%; margin-top: 1rem;" shadow="none">
<h3>联系方式</h3>
<img src="/images/dz2.jpeg" style="width: 200px; margin: auto;"></img>
</el-card>
</b-card>
</grid-item>
</grid>
</div>