替换 element-ui
This commit is contained in:
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
@ -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在线演示"/>
|
||||
|
||||
@ -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')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
**配置域名解析**
|
||||
|
||||
@ -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> -->
|
||||
|
||||
@ -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> -->
|
||||
|
||||
@ -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>
|
||||
|
||||
**配置域名解析**
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
**配置域名解析**
|
||||
|
||||
|
||||
@ -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 的配置
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
**配置域名解析**
|
||||
|
||||
|
||||
@ -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 参考文档推荐
|
||||
|
||||
@ -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 的配置
|
||||
|
||||
@ -58,8 +58,10 @@ Deployment 处于 master 节点上,通过发布 Deployment,master 节点会
|
||||
* 使用 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
|
||||
|
||||
|
||||
@ -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(节点)是
|
||||

|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
|
||||
::: tip
|
||||
Worker节点是k8s中的工作计算机,可能是VM或物理计算机,具体取决于群集。多个Pod可以在一个节点上运行。
|
||||
|
||||
@ -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>
|
||||
|
||||
~~到目前为止,我们已经成功部署好项目,并能够对其进行访问,
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||

|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
|
||||
~~一旦运行了多个应用程序实例,就可以在不停机的情况下执行滚动更新了,
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||

|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
|
||||
|
||||
~~呱唧呱唧,恭喜您,即将成为k8s的大神的您,已经迈进了您k8s的最重要的一步了--入门,那么接下来请再接再厉,继续征服k8s的高峰!!!
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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:
|
||||
|
||||

|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
</el-tabs>
|
||||
</b-tab>
|
||||
</b-tabs>
|
||||
</b-card>
|
||||
|
||||
::: danger 局限性
|
||||
按照 Kubernetes 默认支持的这种方式进行金丝雀发布,有一定的局限性:
|
||||
|
||||
@ -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-概述)
|
||||
|
||||
@ -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-概述)
|
||||
|
||||
@ -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-概述)
|
||||
|
||||
@ -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-概述)
|
||||
|
||||
@ -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 $?
|
||||
* 回滚到前一个版本
|
||||
* 暂停(pause)Deployment,以对 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-概述)
|
||||
|
||||
@ -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 (更新过程中再更新)
|
||||
|
||||
|
||||
@ -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
41
package-lock.json
generated
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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>
|
||||
|
||||
Reference in New Issue
Block a user