vssue
@ -36,6 +36,18 @@ module.exports = {
|
||||
return dateFns.format(timestamp, 'YYYY-MM-DD HH:mm:ss')
|
||||
}
|
||||
},
|
||||
'@vssue/vuepress-plugin-vssue': {
|
||||
// set `platform` rather than `api`
|
||||
platform: 'github',
|
||||
locale: 'zh-CN',
|
||||
autoCreateIssue: true,
|
||||
admins: ['shaohq'],
|
||||
// all other options of Vssue are allowed
|
||||
owner: 'eip-work',
|
||||
repo: 'kuboard-press',
|
||||
// clientId: 'f96af83d4bff4e2b9e3e',
|
||||
// clientSecret: 'cf5686d68d4aab6d3bfa256da9a714049b239c1f',
|
||||
},
|
||||
// 'vuepress-plugin-zooming': {
|
||||
// // 支持点击缩放的图片元素的选择器
|
||||
// // 默认值: '.theme-default-content img'
|
||||
@ -55,7 +67,8 @@ module.exports = {
|
||||
'vuepress-plugin-element-tabs': {},
|
||||
// 'vuepress-plugin-baidu-autopush':{},
|
||||
'sitemap': {
|
||||
hostname: 'https://kuboard.cn'
|
||||
hostname: 'https://kuboard.cn',
|
||||
outFile: '3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRl.xml'
|
||||
},
|
||||
'seo': {
|
||||
siteTitle: (_, $site) => $site.title,
|
||||
@ -317,13 +330,13 @@ module.exports = {
|
||||
// 'spring-cloud/cloud-eureka'
|
||||
]
|
||||
},
|
||||
// {
|
||||
// title: 'Open Capacity Platform',
|
||||
// collapsable: false,
|
||||
// children: [
|
||||
// 'k8s-practice/ocp/',
|
||||
// ]
|
||||
// },
|
||||
{
|
||||
title: 'Open Capacity Platform',
|
||||
collapsable: false,
|
||||
children: [
|
||||
'k8s-practice/ocp/',
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -402,16 +415,6 @@ module.exports = {
|
||||
}
|
||||
],
|
||||
|
||||
'/devops/': [
|
||||
{
|
||||
title: 'Devops',
|
||||
collapsable: false,
|
||||
children: [
|
||||
''
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,11 +3,14 @@
|
||||
<slot name="top"/>
|
||||
|
||||
<Content class="theme-default-content"/>
|
||||
<div style="text-align: center; margin-bottom: 10px;">
|
||||
<div style="text-align: center; margin-bottom: 10px;" v-if="$page.path.indexOf('/learning/') === 0">
|
||||
<a href="https://github.com/eip-work/kuboard-press" target="_blank">如果您觉得 Kubernetes教程 有帮到您,点击此处,给个 Github Star,谢谢!</a>
|
||||
</div>
|
||||
<div style="text-align: center; margin-bottom: 10px;" v-else>
|
||||
<a href="https://github.com/eip-work/kuboard-press" target="_blank">如果您觉得这篇文档有帮到您,点击此处,给个 Github Star,谢谢!</a>
|
||||
</div>
|
||||
<!-- <Valine></Valine> -->
|
||||
<footer class="page-edit">
|
||||
<footer class="page-edit" style="max-width: 1000px;">
|
||||
<div
|
||||
class="edit-link"
|
||||
v-if="editLink"
|
||||
@ -29,7 +32,7 @@
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div class="page-nav" v-if="prev || next">
|
||||
<div class="page-nav" style="max-width: 1000px;" v-if="prev || next">
|
||||
<p class="inner">
|
||||
<span
|
||||
v-if="prev"
|
||||
@ -59,17 +62,18 @@
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<PageVssue class="theme-default-content" style="max-width: 1000px; margin-top: -1.6rem; padding-top: 0;"></PageVssue>
|
||||
<slot name="bottom"/>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { resolvePage, outboundRE, endingSlashRE } from '../util'
|
||||
import PageVssue from './PageVssue'
|
||||
|
||||
export default {
|
||||
props: ['sidebarItems'],
|
||||
|
||||
components: { PageVssue },
|
||||
computed: {
|
||||
lastUpdated () {
|
||||
return this.$page.lastUpdated
|
||||
|
||||
61
.vuepress/theme/components/PageVssue.vue
Normal file
@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-for="(item, key) in vssues" :key="key">
|
||||
<Vssue v-if="item" v-show="key === $route.path" :issueId="item" :options="options"/>
|
||||
<div v-if="item === undefined && isLocalHost" v-show="key === $route.path" :key="key">
|
||||
<div style="color: red; background-color: yellow;">请创建 VssueId</div>
|
||||
<Vssue :title="$page.path" :options="options"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
vssues: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isLocalHost() {
|
||||
if (window) {
|
||||
if (window.location.host === 'localhost:8080') {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
},
|
||||
options () {
|
||||
let _this = this
|
||||
let result = {
|
||||
platform: 'github',
|
||||
locale: 'zh-CN',
|
||||
autoCreateIssue: true,
|
||||
admins: ['shaohq'],
|
||||
// all other options of Vssue are allowed
|
||||
owner: 'eip-work',
|
||||
repo: 'kuboard-press',
|
||||
clientId: this.isLocalHost ? 'f96af83d4bff4e2b9e3e' : '8141f5c205ad2f6d90d5',
|
||||
clientSecret: this.isLocalHost ? 'cf5686d68d4aab6d3bfa256da9a714049b239c1f' : 'b3e238508a2e8da9f2b355662b4cb3e62ecaa1d4',
|
||||
issueContent: (options, url) => { return 'https://kuboard.cn' + _this.$route.path }
|
||||
}
|
||||
return result
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.$set(this.vssues, this.$route.path, this.$frontmatter.vssueId)
|
||||
},
|
||||
watch: {
|
||||
'$route.path': function () {
|
||||
this.$set(this.vssues, this.$route.path, this.$frontmatter.vssueId)
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.vssue-header-powered-by {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@ -41,7 +41,7 @@
|
||||
else {
|
||||
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
|
||||
}
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(bp, s);
|
||||
})();
|
||||
</script>
|
||||
|
||||
@ -56,7 +56,7 @@
|
||||
else {
|
||||
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
|
||||
}
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(bp, s);
|
||||
})();
|
||||
</script>
|
||||
|
||||
@ -1,13 +0,0 @@
|
||||
---
|
||||
description: Kubernetes+DevOps文档
|
||||
---
|
||||
|
||||
# Kubernetes+DevOps
|
||||
|
||||
如何继承 DevOps ?
|
||||
|
||||
[文档准备好后,请通知我](https://www.wjx.top/jq/43453748.aspx)
|
||||
|
||||
<div>
|
||||
<script type='text/javascript' src='https://www.wjx.top/handler/jqemed.ashx?activity=43453748&width=760&source=iframe'></script>
|
||||
</div>
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 70
|
||||
description: 熟悉Kuboard_on_Kubernetes_的最佳途径。
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 74
|
||||
description: 使用Kuboard管理Kubernetes计算节点
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 75
|
||||
description: 使用Kuboard管理Kubernetes存储类StorageClass
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 73
|
||||
description: 使用Kuboard向Kubernetes部署一个最简单的Deployment
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 76
|
||||
description: 通过Kuboard将一个预先定义好的SpringCloud微服务样例程序导入到Kubernetes中。
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 77
|
||||
description: 使用Kuboard在Kubernetes上安装监控套件,并对example微服务实现资源层监控、中间件层监控、链路追踪和APM监控
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 19
|
||||
description: Kubernete安装文档_详细介绍如何将Kuboard升级到最新版本。
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 13
|
||||
description: Kubernete安装文档_Kuboard的安装手册_包括安装Kuboard的前提条件_与Kubernetes的版本兼容性_安装步骤_以及完成安装后如何访问Kuboard界面。
|
||||
# storyBook:
|
||||
# title: '安装 Kuboard'
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 14
|
||||
description: Kubernete安装文档_本文介绍了如何在Windows_Mac电脑安装Kubernetes测试集群
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 17
|
||||
description: Kubernete安装文档_使用kubeadm升级kubernetes集群
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 15
|
||||
# layout: StepLayout
|
||||
description: Kubernete安装文档_Kubernetes最新稳定版v1.16.0的快速安装文档_该文档由众多网友验证并在线提出修改意见_持续不断地更新和完善_并且通过QQ群提供免费在线答疑的服务
|
||||
# storyBook:
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 18
|
||||
description: Kubernete安装文档_日常工作中您可能需要在自己的笔记本电脑上执行kubectl命令以管理远程Linux服务器上的Kubernetes集群_本文档介绍了如何在您的笔记本电脑上安装和配置kubectl工具
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 16
|
||||
description: Kubernete安装文档_使用kubeadm安装高可用的Kubernetes_v1.15.3集群
|
||||
# storyBook:
|
||||
# title: '使用 kubeadm 安装 kubernetes v1.15.3(高可用)'
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 9
|
||||
layout: LearningLayout
|
||||
description: Kubernetes免费中文教程目录
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 66
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_高级篇_主要涉及日志采集_安全_监控_联邦等内容
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 21
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文详细讲解了Kubernetes_Deployment的概念_并描述了如何使用kubectl_Kuboard创建一个Deployment
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 22
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了如何使用kubectl_Kuboard查看和浏览Kubernetes上的节点_容器组_部署等信息_并依据这些信息作出问题诊断
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 23
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文详细讲解了Kubernetes_Service的概念_并描述了如何使用kubectl_Kuboard创建一个Service_以使得部署在Kubernetes上的容器可以被访问
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 26
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_以gif动图的形式形象的描述Kubernetes核心概念_本文将会简单介绍Kubernetes的核心概念_因为这些定义可以在Kubernetes的文档中找到_所以文章也会避免用大段的枯燥的文字介绍_相反_我们会使用一些图表(其中一些是动画)和示例来解释这些概念_我们发现一些概念(比如Service)如果没有图表的辅助就很难全面地理解_在合适的地方我们也会提供Kubernetes文档的链接以便读者深入学习
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 27
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文为初学者介绍了一套最合适的Kubernetes入门教程_该教程源自于Kubernetes官方网站_作者对其进行了翻译_并根据初学者的理解情况做了适当的改写
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 24
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文详细讲解了Kubernetes_Scale的概念_并描述了如何使用_kubectl_Kuboard_对一个应用程序进行伸缩操作
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 25
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文详细讲解了Kubernetes_Rolling_Update_的概念_并描述了如何使用_kubectl_Kuboard_对一个应用程序执行滚动更新。
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 64
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中将Pod容器组调度到指定的节点
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 63
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中管理和分配容器的计算资源
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 62
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_Kubernetes_ConfigMap可以将配置信息和容器镜像解耦_以使得容器化的应用程序可移植_本文提供了一系列的实例_解释如何通过Kuboard创建ConfigMap以及如何使用ConfigMap中的数据配置Pod(容器组)。
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 65
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_配置和使用_Secret
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 60
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了存储卷PersistentVolume_存储卷声明PersistentVolumeClaim的概念_他们的关系_以及如何使用
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 61
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了存储类的概念及其使用
|
||||
---
|
||||
|
||||
49
learning/k8s-intermediate/persistent/volume-mount-point.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍Kubernetes中Volume(数据卷)的挂载以及挂载传播MountPropagation的概念
|
||||
---
|
||||
|
||||
# 数据卷-挂载
|
||||
|
||||
参考文档: Kubernetes 官网文档 [Volumes](https://kubernetes.io/docs/concepts/storage/volumes/)
|
||||
|
||||
## 容器内路径
|
||||
|
||||
## 权限
|
||||
|
||||
## 挂载传播
|
||||
|
||||
数据卷的挂载传播(Mount Propagation)由 Pod 的 `spec.containers[*].volumeMounts.mountPropagation` 字段控制。可选的取值有:
|
||||
|
||||
* **None**: 默认值。在数据卷被挂载到容器之后,此数据卷不会再接受任何后续宿主机或其他容器挂载到该数据卷对应目录下的子目录的挂载。同样的,在容器中向该数据卷对应目录挂载新目录时,宿主机也不能看到。对应 Linux 的 `private` mount propagation 选项[Linux内核文档](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt)
|
||||
|
||||
* **HostToContainer**:在数据卷被挂载到容器之后,宿主机向该数据卷对应目录添加挂载时,对容器是可见的。对应 Linux 的 `rslave` mount propagation 选项 [Linux内核文档](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt)
|
||||
|
||||
* **Bidirectional**:在数据卷被挂载到容器之后,宿主机向该数据卷对应目录添加挂载时,对容器是可见的;同时,从容器中向该数据卷创建挂载,同样也对宿主机可见。对应 Linux 的 `rshared` mount propagation 选项 [Linux内核文档](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt)
|
||||
|
||||
::: danger
|
||||
**Bidirectional** mount propagation 选项隐藏风险。如果在容器内进行不合适的挂载,可能影响宿主机的操作系统正常执行,因此,只有 privileged 容器才可以使用该选项。使用此选项时,建议对 Linux 内核的行为有所熟悉。此外,使用 Bidirectional 选项时,任何由 Pod 中容器在对应数据卷目录创建的挂载必须在容器终止时销毁(umounted)。
|
||||
:::
|
||||
|
||||
### 额外配置
|
||||
|
||||
在部分系统中(CoreOS、RedHat/Centos、Ubuntu),Docker 的 mount share 选项必须事先配置好,步骤如下:
|
||||
|
||||
* **编辑 Docker 的 `systemd` service 文件**,将 `MountFlags` 设定如下:
|
||||
|
||||
```
|
||||
MountFlags=shared
|
||||
```
|
||||
|
||||
**或者移除 `MountFlags=slave`**
|
||||
|
||||
* 重启 Docker 守护进程:
|
||||
|
||||
``` sh
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
## 数据卷
|
||||
|
||||
## 数据卷内子路径
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 59
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍Kubernetes中Volume(数据卷)的基本概念_用法以及支持的数据卷类型
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 28
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_通过Kuboard配置Kubernetes_使用私有registry中的docker镜像
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 58
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_如何选择合适的网络插件CNI
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 56
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_在Kubernetes中_通过Service连接应用程序
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 55
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了Kubernetes中Service和Pod的DNS分配规则
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 57
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍Kubernetes_Ingress的概念_包括Ingress基本概念_如何配置Ingress_Controller_如何使用kubectl_Kuboard操作Ingress信息
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 53
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了Kubernetes中服务发现的机制以及如何使用服务发现
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 54
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_Kubernetes中发布Service的方式_ServiceType
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 52
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了Kubernetes中服务发现的机制以及如何使用服务发现
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 31
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文描述了Kubernetes_Pod中的初始化容器的概念_使用场景和使用方法_初始化容器是容器组中app容器启动之前执行的容器_可能包含setup脚本或其他工具进程
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 30
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文描述了Kubernetes中Pod容器组的生命周期
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 29
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍Kubernetes中的最小可调度单元Pod容器组的概念以及如何使用容器组
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 51
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes DaemonSet 的概念、行为及用法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 49
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes DaemonSet 的概念、行为及用法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 47
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes 中如何创建 DaemonSet
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 46
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes DaemonSet 的概念、行为及用法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 48
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes DaemonSet 如何调度 Pod
|
||||
---
|
||||
@ -51,4 +52,3 @@ nodeAffinity:
|
||||
| node.kubernetes.io/memory-pressure | NoSchedule | 1.8+ | |
|
||||
| node.kubernetes.io/unschedulable | NoSchedule | 1.12+ | 默认调度器针对 DaemonSet 容器组,容忍节点的 `unschedulable `属性 |
|
||||
| node.kubernetes.io/network-unavailable | NoSchedule | 1.12+ | 默认调度器针对 DaemonSet 容器组,在其使用 host network 时,容忍节点的 `network-unavailable` 属性 |
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 50
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes DaemonSet 的概念、行为及用法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 41
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何通过 Deployment 执行灰度发布(金丝雀发布)
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 40
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中清理 Deployment 中旧的 ReplicaSet
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 34
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何创建一个 Deployment,如何理解 Deployment 各个字段,以及如何查看 Deployment 的创建结果
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 33
|
||||
layout: LearningLayout
|
||||
description: 本文介绍了 Kubernetes Deployment 的概念、行为及使用方法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 38
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中暂停 Deployment 的更新,和继续 Deployment 的更新
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 36
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中回滚 Deployment
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 37
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中水平伸缩 Deployment (scaling up / scaling down)
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 39
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中查看 Deployment 的状态
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 35
|
||||
layout: LearningLayout
|
||||
description: 本文描述了如何在 Kubernetes 中更新 Deployment
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 43
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes StatefulSet 的基本信息:Components、Pod Selector、Pod Identity
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 42
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes StatefulSet 的概念、行为及用法
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 44
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes StatefulSet 的部署和伸缩
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 45
|
||||
layout: LearningLayout
|
||||
description: 本文描述了 Kubernetes StatefulSet 的更新
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 32
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文介绍了Kubernetes_Controller控制器的概念以及控制器的种类
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 67
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_本文描述了一个经典微服务参考架构_并且通过三个视图(集群概览、名称空间、工作负载)理解微服务与Kubernetes的映射关系。
|
||||
---
|
||||
|
||||
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 250 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 201 KiB |
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 69
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微服务平台OCP_open_capacity_platform微服务能力开放平台
|
||||
---
|
||||
@ -8,7 +9,7 @@ description: Kubernetes教程_使用Kuboard在Kubernetes上部署Spring_Cloud微
|
||||
|
||||
## 使用 Kuboard 在 K8S 上部署 OCP
|
||||
|
||||
Kuboard网站将陆续连载如何使用 Kuboard 部署 OCP 的如下组件:
|
||||
Kuboard 网站将陆续 **连载** 如何使用 Kuboard 部署 OCP 的如下组件:
|
||||
* eureka-server
|
||||
* auth-server
|
||||
* user-center
|
||||
@ -17,9 +18,13 @@ Kuboard网站将陆续连载如何使用 Kuboard 部署 OCP 的如下组件:
|
||||
|
||||
与 OCP 相关的问题,请加 OCP 的 QQ群 483725710
|
||||
|
||||
[进入 OCP 首页](https://gitee.com/owenwangwen/open-capacity-platform)
|
||||
|
||||
<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=8d8ae84021c97e31010fd8e44f518e1129ebd3be9ee0c004ec2cf68e8860b6c2" onclick="openOutboundLink(this)">一键加入OCP社群 <img style="vertical-align: top;" border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="ocp&cp微服务" title="ocp&cp微服务"></a>
|
||||
|
||||
[进入 OCP 首页](https://gitee.com/owenwangwen/open-capacity-platform)
|
||||
<p>
|
||||
<img src="./index.assets/143151_36a5c07e_869801.png" style="max-width: 160px;" alt="Kubernetes教程_OCP_QQ群"></img>
|
||||
</p>
|
||||
|
||||
## OCP 介绍
|
||||
|
||||
@ -75,6 +80,40 @@ Kuboard网站将陆续连载如何使用 Kuboard 部署 OCP 的如下组件:
|
||||
- 基于docker的elk日志监控
|
||||
- 基于docker的服务动态扩容
|
||||
|
||||
## 代码结构
|
||||
|
||||
<p>
|
||||
<img src="./index.assets/214757_e3408bdc_869801.png" style="max-width: 720px;" alt="Kubernetes教程_OCP_代码结构"></img>
|
||||
</p>
|
||||
|
||||
## 能力开放管理平台
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## APM 监控
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 系统监控
|
||||
|
||||

|
||||
|
||||
## 灰度发布
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 阿波罗配置中心
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
## 用户权益
|
||||
- 允许免费用于学习、毕设、公司项目、私活等。
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 68
|
||||
layout: LearningLayout
|
||||
description: Kubernetes教程_微服务参考架构_包含微服务运行时_构建及测试_部署及运维_监控及评估__设计和研发Kuboard的初心便源于此SpringCloud微服务参考架构。
|
||||
---
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 8
|
||||
description: Kubernetes教程_介绍Kuboard_Kubernetes微服务管理界面_并为Kubernetes初学者提供快速的学习路线_含Kubernetes最新版国内安装文档)
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 12
|
||||
description: Kuboard通过图形化操作界面以及无YAML操作_帮助降低_Kubernetes_学习门槛。
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 10
|
||||
description: Kuboard提供Kubernetes图形化管理界面_Kubernetes最新版本安装手册_SpringCloud微服务部署实战案例_免费自助无需商务谈判_帮助用户快速落地Kubernetes
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 11
|
||||
description: Kubernetes教程_Kubernetes已然是当下容器编排领域事实上的标准_各大云服务商都急于推出Kubernetes服务_互联网公司也纷纷跟进_将自己的应用容器化_并使用Kubernetes编排_在Kubernetes图形化工具方面_我们已经获得了极大的可选择空间_什么场景下更适合选择Kuboard呢
|
||||
---
|
||||
|
||||
|
||||
111
package-lock.json
generated
@ -868,6 +868,35 @@
|
||||
"integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=",
|
||||
"dev": true
|
||||
},
|
||||
"@vssue/api-github-v3": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/@vssue/api-github-v3/download/@vssue/api-github-v3-1.0.3.tgz",
|
||||
"integrity": "sha1-Mbbs1Sk2XQwOtOiOuPBtwpvMsDU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@vssue/utils": "^1.0.3",
|
||||
"axios": "^0.18.1"
|
||||
}
|
||||
},
|
||||
"@vssue/utils": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/@vssue/utils/download/@vssue/utils-1.0.3.tgz",
|
||||
"integrity": "sha1-eLb53/5tJj/r/33+Mf87Cjmhf8o=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"date-fns": "^1.29.0",
|
||||
"qs": "^6.6.0"
|
||||
}
|
||||
},
|
||||
"@vssue/vuepress-plugin-vssue": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/@vssue/vuepress-plugin-vssue/download/@vssue/vuepress-plugin-vssue-1.0.3.tgz",
|
||||
"integrity": "sha1-BLQe37hEmXSyYczC3b2DW6gj5FA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"vssue": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"@vue/babel-helper-vue-jsx-merge-props": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
|
||||
@ -1853,6 +1882,48 @@
|
||||
"integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.1",
|
||||
"resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.1.tgz",
|
||||
"integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"follow-redirects": "1.5.10",
|
||||
"is-buffer": "^2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
|
||||
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz",
|
||||
"integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "=3.1.0"
|
||||
}
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.3.tgz",
|
||||
"integrity": "sha1-Ts8/z3ScvR5HJonhCaxmJhol5yU=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"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",
|
||||
@ -5037,6 +5108,12 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"github-markdown-css": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npm.taobao.org/github-markdown-css/download/github-markdown-css-3.0.1.tgz",
|
||||
"integrity": "sha1-0I2xBg0uGCAl4NB9VHz+Kv7TAgU=",
|
||||
"dev": true
|
||||
},
|
||||
"github3": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/github3/download/github3-1.2.0.tgz",
|
||||
@ -13959,18 +14036,43 @@
|
||||
"integrity": "sha1-vXbWojMj4sqP+hICjcBFWcdfkBk=",
|
||||
"dev": true
|
||||
},
|
||||
"vssue": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npm.taobao.org/vssue/download/vssue-1.0.3.tgz",
|
||||
"integrity": "sha1-J7TByZOkNulTEFWPkXdII/H/CNo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@vssue/utils": "^1.0.3",
|
||||
"github-markdown-css": "^3.0.1",
|
||||
"vue": "^2.6.10",
|
||||
"vue-i18n": "^8.11.2",
|
||||
"vue-property-decorator": "^8.1.1"
|
||||
}
|
||||
},
|
||||
"vue": {
|
||||
"version": "2.6.10",
|
||||
"resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz",
|
||||
"integrity": "sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=",
|
||||
"dev": true
|
||||
},
|
||||
"vue-class-component": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-class-component/download/vue-class-component-7.1.0.tgz",
|
||||
"integrity": "sha1-sz78sQ4XI21oT3Cx6W8ZRux5Poc=",
|
||||
"dev": true
|
||||
},
|
||||
"vue-hot-reload-api": {
|
||||
"version": "2.3.4",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz",
|
||||
"integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=",
|
||||
"dev": true
|
||||
},
|
||||
"vue-i18n": {
|
||||
"version": "8.14.1",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.14.1.tgz",
|
||||
"integrity": "sha1-DKCidCwU4BREgWVRV//8x8wxPlA=",
|
||||
"dev": true
|
||||
},
|
||||
"vue-loader": {
|
||||
"version": "15.7.1",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.7.1.tgz?cache=0&sync_timestamp=1563435501637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.7.1.tgz",
|
||||
@ -13984,6 +14086,15 @@
|
||||
"vue-style-loader": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"vue-property-decorator": {
|
||||
"version": "8.2.2",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-property-decorator/download/vue-property-decorator-8.2.2.tgz?cache=0&sync_timestamp=1566870130949&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-property-decorator%2Fdownload%2Fvue-property-decorator-8.2.2.tgz",
|
||||
"integrity": "sha1-rIlelQjuG/huOihWjZTYQsLI5C8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"vue-class-component": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"vue-router": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.1.3.tgz",
|
||||
|
||||
@ -4,6 +4,8 @@
|
||||
"docs:build": "vuepress build ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vssue/api-github-v3": "^1.0.3",
|
||||
"@vssue/vuepress-plugin-vssue": "^1.0.3",
|
||||
"@vuepress/plugin-back-to-top": "^1.1.0",
|
||||
"@vuepress/plugin-google-analytics": "^1.1.0",
|
||||
"@vuepress/plugin-medium-zoom": "^1.1.0",
|
||||
|
||||
@ -1,30 +1,31 @@
|
||||
Kuboard v1.0.x 的更新说明
|
||||
|
||||
## v1.0.3-beta.6
|
||||
## v1.0.4-beta.1
|
||||
|
||||
**发布日期**
|
||||
|
||||
2019年9月21日
|
||||
2019年9月22日
|
||||
|
||||
**新特性**
|
||||
|
||||
* 工作负载编辑器 --> 容器组 --> terminationGracePeriodSeconds
|
||||
* 工作负载编辑器 --> 容器组 --> 容器 --> 挂载点 --> 增加 mountPropagation 选项
|
||||
|
||||
**优化**
|
||||
|
||||
* ConfigMap 的代码编辑器暂时不做高亮处理
|
||||
|
||||
**BUG 修复**
|
||||
|
||||
* 预览的 YAML 不能第二次使用 kubectl apply 的问题(YAML 中存在空 MAP)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* terminationGracePeriodSeconds
|
||||
* Service --> SessionAffinity
|
||||
--> clientIP.timeoutSeconds
|
||||
* Service --> .spec.clusterIP
|
||||
* --privileged
|
||||
* mountPropagation
|
||||
|
||||
* 创建工作负载时,不追加前缀
|
||||
* 存储卷声明去掉分配模式的字段
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 72
|
||||
description: 本文描述了Kuboard_v1.0.x的版本变更说明
|
||||
---
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
---
|
||||
vssueId: 71
|
||||
description: Kubernetes教程_本文描述了如何获得Kuboard授权
|
||||
---
|
||||
|
||||
|
||||