优化 StarGazer,Deployment 教程

This commit is contained in:
huanqing.shao
2019-09-09 23:00:59 +08:00
parent 30e5ce2bd3
commit d22f16f501
16 changed files with 220 additions and 34 deletions

View File

@ -6,13 +6,12 @@
width="50%"
:append-to-body ="true">
<div style="text-align: center;">
<div style="margin-top: 10px;">本站所有内容 <span style="color: red;">全部免费</span></div>
<div style="margin-top: 10px;">未打赏用户可进 QQ 群聊<span style="color: red;">打赏用户可进微信群聊</span></div>
<div style="margin-top: 10px;">
<span style="font-size: 13px;">扫第一个二维码完成打赏扫第二个进微信群聊</span>
<p style="margin-top: 10px;">
<img src="../theme/layouts/dz.png" style="width: 150px; margin-right: 150px;"></img>
<img src="../theme/layouts/dz2.jpeg" style="width: 150px;"></img>
<img src="/dz.png" style="width: 150px; margin-right: 150px;"></img>
<img src="/dz2.jpeg" style="width: 150px;"></img>
</p>
</div>
<div style="margin-bottom: 10px;">不方便给打赏的话那就 <span style="color: red;">给一个 github star</span> </div>
@ -46,14 +45,14 @@ export default {
methods: {
waitAMoment() {
this.dialogVisible = false
if (localStorage.getItem('stared') === 'true1') {
if (localStorage.getItem('stared') === 'true') {
return
}
let _this = this
setTimeout(_ => {
_this.dialogVisible = true
// }, 10000)
}, 60000 * 3)
}, 60000 * 1)
},
gotoStar() {
this.dialogVisible = false

View File

@ -1,11 +1,11 @@
<template>
<div class="theme-default-content content__default">
<div style="padding: 10px;">
<!-- <div style="padding: 10px;">
<span :id="$page.path" class="leancloud_visitors" :data-flag-title="$page.title">
<em class="post-meta-item-text">阅读量 </em>
<i class="leancloud-visitors-count">1000000</i>
</span>
</div>
</div> -->
<div id="vcomments"></div>
</div>
</template>
@ -29,7 +29,7 @@ export default {
notify:false,
verify:false,
avatar:'identicon',
visitor: true,
visitor: false,
placeholder: '说说我对这篇文档的看法'
});
},

View File

@ -187,7 +187,7 @@ module.exports = {
'k8s-intermediate/workload/pod-lifecycle',
'k8s-intermediate/workload/init-container',
'k8s-intermediate/workload/workload',
// 'k8s-intermediate/workload/wl-deployment',
'k8s-intermediate/workload/wl-deployment',
// 'k8s-intermediate/workload/wl-statefulset',
// 'k8s-intermediate/workload/wl-daemonset',
// 'k8s-intermediate/workload/wl-job',

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -5,8 +5,8 @@
<div>
<span style="font-size: 13px;">扫第一个二维码完成打赏扫第二个进微信群聊</span>
<p style="margin-top: 10px;">
<img src="./dz.png" style="width: 120px; margin-right: 20px;"></img>
<img src="./dz2.jpeg" style="width: 120px;"></img>
<img src="/dz.png" style="width: 120px; margin-right: 20px;"></img>
<img src="/dz2.jpeg" style="width: 120px;"></img>
</p>
</div>
<div class="side-nav-item" :style="activeLinkStyle('/overview/') + 'margin-left: 0;'">

View File

@ -5,8 +5,8 @@
<div>
<span style="font-size: 13px;">扫第一个二维码完成打赏扫第二个进微信群聊</span>
<p style="margin-top: 10px;">
<img src="./dz.png" style="width: 120px; margin-right: 20px;"></img>
<img src="./dz2.jpeg" style="width: 120px;"></img>
<img src="/dz.png" style="width: 120px; margin-right: 20px;"></img>
<img src="/dz2.jpeg" style="width: 120px;"></img>
</p>
</div>
<div class="side-nav-item" :style="activeLinkStyle('/overview/') + 'margin-left: 0;'">
@ -38,10 +38,9 @@
<li>未打赏用户可加 QQ 请扫描左侧导航<span style="color: red; font-weight: 500;">下方</span>的二维码</li>
<li>根据答疑情况<span style="color: red; font-weight: 500;">不断完善</span> 教程</li>
</div>
<div style="display: inline-block; margin-left: 10px;">
<img src="./dz.png" style="width: 100px; margin-right: 100px;"></img>
<img src="./dz2.jpeg" style="width: 100px;"></img>
<img src="/dz.png" style="width: 100px; margin-right: 100px;"></img>
<img src="/dz2.jpeg" style="width: 100px;"></img>
</div>
</div>
</div>
@ -72,7 +71,7 @@ export default {
<style scoped>
.page-top {
margin-bottom: -80px;
margin-bottom: -80px !important;
}
.bottom-description {
text-align: center;

View File

@ -97,9 +97,18 @@ export default {
* 始终有最新的 Kubernetes 稳定版安装文档,当前版本 v1.15.3
* 当前已更新了 <font color="red"> 46 次 </font> [查看更新历史](https://github.com/eip-work/kuboard-press/commits/master/install/install-k8s.md)
* **在线答疑** QQ 群
* **在线答疑**
![kuboard_qq.png](./install-k8s.assets/kuboard_qq.png)
<div>
<div style="margin-top: 10px;">未打赏用户可进 QQ 群聊,<span style="color: red;">打赏用户可进微信群聊</span></div>
<div style="margin-top: 10px;">
<span>扫第一个二维码完成打赏,扫第二个进微信群聊。</span> <span style="color: #CCC">QQ 群聊二维码在左侧导航栏下方。</span>
<p style="margin-top: 10px;">
<img src="/dz.png" style="width: 150px; margin-right: 150px;"></img>
<img src="/dz2.jpeg" style="width: 150px;"></img>
</p>
</div>
</div>
</div>
<div slot="overview" style="min-height: 800px;">

View File

@ -45,9 +45,18 @@ kubernetes 安装有多种选择,本文档描述的集群安装具备如下特
![image-20190826000403193](./install-kubernetes.assets/image-20190826000403193.png)
* **在线答疑** QQ 群
* **在线答疑**
![kuboard_qq.png](../overview/README.assets/kuboard_qq.png)
<div>
<div style="margin-top: 10px;">未打赏用户可进 QQ 群聊,<span style="color: red;">打赏用户可进微信群聊</span></div>
<div style="margin-top: 10px;">
<span>扫第一个二维码完成打赏,扫第二个进微信群聊。</span> <span style="color: #CCC">QQ 群聊二维码在左侧导航栏下方。</span>
<p style="margin-top: 10px;">
<img src="/dz.png" style="width: 150px; margin-right: 150px;"></img>
<img src="/dz2.jpeg" style="width: 150px;"></img>
</p>
</div>
</div>
</div>

View File

@ -35,7 +35,7 @@ description: Kubernetes 免费教程
* [容器组 - 生命周期](/learning/k8s-intermediate/workload/pod-lifecycle.html)
* [容器组 - 初始化容器](/learning/k8s-intermediate/workload/init-container.html)
* [控制器 - 概述](/learning/k8s-intermediate/workload/workload.html)
* [控制器 - Deployment](/learning/k8s-intermediate/workload/wl-deployment.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - Deployment](/learning/k8s-intermediate/workload/wl-deployment.html)
* [控制器 - StatefulSet](/learning/k8s-intermediate/workload/wl-statefulset.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - DaemonSet](/learning/k8s-intermediate/workload/wl-daemonset.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - Job](/learning/k8s-intermediate/workload/wl-job.html) <Badge text="正在撰写" type="warn"/>

View File

@ -101,7 +101,32 @@ PersistentVolumeClaim 将始终停留在 ***未绑定 unbound*** 状态,直到
## 存储卷类型
Kubernetes 支持 20 种存储卷类型(Types of Persistent Volumes但是大多数都特定于具体的云环境如 GCEPersistentDisk / AWSElasticBlockStore / AzureFile / AzureDisk 等,具体请参考 [Types of Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes)
Kubernetes 支持 20 种存储卷类型(参考 [Types of Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes)),如下所示:
* 非持久性存储
* emptyDir
* HostPath (只在单节点集群上用做测试目的)
* 网络连接性存储
* SANiSCSI、ScaleIO Volumes、FC (Fibre Channel)
* NFSnfscfs
* 分布式存储
* Glusterfs
* RBD (Ceph Block Device)
* CephFS
* Portworx Volumes
* Quobyte Volumes
* 云端存储
* GCEPersistentDisk
* AWSElasticBlockStore
* AzureFile
* AzureDisk
* Cinder (OpenStack block storage)
* VsphereVolume
* StorageOS
* 自定义存储
* FlexVolume
* 不推荐
* Flocker (最近更新2016年 https://github.com/ClusterHQ/flocker/)
针对自建 Kubernetes 集群的情况Kuboard 支持如下几种存储卷类型:
* NFS <Badge text="Kuboard 已支持" type="success"/>

View File

@ -0,0 +1,20 @@
---
layout: LearningLayout
description: 本文介绍了如何选择 Kubernetes 存储卷类型/数据卷类型
---
# 数据卷类型如何选择
# 存储卷类型如何选择
非持久性存储
emptyDir
hostPath
网络连接性存储
SANiSCSI
NFSnfscfs
分布式存储
glusterfs、rbd、cephfs
云端存储
EBS、Azure Disk、阿里云、gitRepo

View File

@ -5,4 +5,101 @@ description: 本文介绍了 Kubernetes Deployment 的概念、行为及使用
# 控制器 - Deployment
正在撰写...
参考文档: Kubernetes 官网 [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
术语表
| 英文 | 英文简称 | 中文 |
| ---------- | ---------- | ------ |
| Pod | Pod | 容器组 |
| Controller | Controller | 控制器 |
| ReplicaSet | ReplicaSet | 副本集 |
| Deployment | Deployment | 部署 |
## 背景知识
### Pod 容器组
Pod 容器组是 Kubernetes 中最小的调度单元,更多信息请参考 [容器组 - 概述](./pod.html)
### ReplicaSet 副本集
ReplicaSet 副本集的用途是为指定的 Pod 维护一个副本(实例)数量稳定的集合。下面是一个定义 ReplicaSet 副本集的 yaml 文件:
``` yaml {8,9,12}
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
tier: frontend
spec:
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3
```
ReplicaSet 副本集的主要几个字段有:
* selector 确定哪些 Pod 属于该副本集
* replicas 副本集应该维护几个 Pod 副本(实例)
* template Pod 的定义
副本集将通过创建、删除 Pod 容器组来确保符合 selector 选择器的 Pod 数量等于 replicas 指定的数量。当符合 selector 选择器的 Pod 数量不够时,副本集通过使用 template 中的定义来创建 Pod。
在 Kubernetes 中,并不建议您直接使用 ReplicaSet推荐使用 Deployment由 Deployment 创建和管理 ReplicaSet。
## Deployment 概述
Deployment 是最常用的用于部署无状态服务的方式。Deployment 控制器使得您能够以声明的方式更新 Pod容器组和 ReplicaSet副本集
::: tip
声明的方式是相对于非声明方式而言的。例如,以滚动更新为例,假设有 3 个容器组,现需要将他们的容器镜像更新为新的版本。
* 非声明的方式,您需要手动逐步执行以下过程:
* 使用 kubectl 创建一个新版本镜像的容器组
* 使用 kubectl 观察新建容器组的状态
* 新建容器组的状态就绪以后,使用 kubectl 删除一个旧的容器组
* 重复执行上述过程,直到所有容器组都已经替换为新版本镜像的容器组
* 声明的方式,您只需要执行:
* 使用 kubectl 更新 Deployment 定义中 spec.template.spec.containers[].image 字段
> Deployment 实际执行滚动更新时的行为,本文后面有详细描述
:::
以“声明”的方式管理 Pod 和 ReplicaSet其本质是将一些特定场景的一系列运维步骤固化下来以便快速准确无误的执行。Deployment 为我们确定了如下几种运维场景:
* [创建Deployment](#创建deployment) 创建 Deployment 后Deployment 控制器将立刻创建一个 ReplicaSet 副本集,并由 ReplicaSet 创建所需要的 Pod。
* [更新Deployment](#更新deployment) 更新 Deployment 中 Pod 的定义(例如,发布新版本的容器镜像)。此时 Deployment 控制器将为该 Deployment 创建一个新的 ReplicaSet 副本集,并且逐步在新的副本集中创建 Pod在旧的副本集中删除 Pod以达到滚动更新的效果。
* [回滚Deployment](#回滚deployment) 回滚到一个早期 Deployment 版本。
* [伸缩Deployment](#伸缩deployment) 水平扩展 Deployment以便支持更大的负载或者水平收缩 Deployment以便节省服务器资源。
* [暂停和继续Deployment](#暂停和继续deployment) 暂停正在进行的滚动更新,继续正在进行的滚动更新。
* [查看Deployment状态](#查看deployment状态)
* [清理旧的ReplicaSet](#清理旧的replicaset)
* [金丝雀发布](#金丝雀发布)
## 创建Deployment
未完待续最后更新时间2019年9月9日 22:50
## 更新Deployment
## 回滚Deployment
## 伸缩Deployment
## 暂停和继续Deployment
## 查看Deployment状态
## 清理旧的ReplicaSet
## 金丝雀发布

View File

@ -7,14 +7,14 @@ description: 本文介绍了 Kubernetes Controller控制器的概念
Pod容器组是 Kubernetes 中最小的调度单元,您可以通过 kubectl 直接创建一个 Pod。Pod 本身并不能自愈self-healing。如果一个 Pod 所在的 Node 节点出现故障或者调度程序自身出现故障Pod 将被删除;同理,当因为节点资源不够或节点维护而驱逐 Pod 时Pod 也将被删除。
Kubernetes 通过引入 Controller控制器的概念来管理 Pod 实例。在 Kubernetes 中,<font color="red">您应该始终通过创建 Controller 来创建 Pod而不是直接创建 Pod</font>。控制器可以提供如下特性:
Kubernetes 通过引入 Controller控制器的概念来管理 Pod 实例。在 Kubernetes 中,<font color="red">您应该始终通过创建 Controller 来创建 Pod而不是直接创建 Pod</font>**控制器可以提供如下特性:**
* 水平扩展(运行 Pod 的多个副本)
* rollout版本更新
* self-healing故障恢复
例如:当一个节点出现故障,控制器可以自动地在另一个节点调度一个配置完全一样的 Pod以替换故障节点上的 Pod。
在 Kubernetes 中,广泛使用的控制器有:
**在 Kubernetes 支持的控制器有如下几种:**
* [Deployment](./wl-deployment.html) <Badge text="Kuboard 已支持" type="success"/>
* [StatefulSet](./wl-statefulset.html) <Badge text="Kuboard 已支持" type="success"/>
@ -23,7 +23,22 @@ Kubernetes 通过引入 Controller控制器的概念来管理 Pod 实例
* [CronJob](./wl-cronjob.html) <Badge text="Kuboard 正在计划中" type="warn"/>
* [Jobs - Run to Completion](./wl-job.html) <Badge text="Kuboard 正在计划中" type="warn"/>
* ReplicaSet <Badge text="Kuboard 暂不支持" type="warn"/>
* ReplicationController <Badge text="Kuboard 暂不支持" type="warn"/>
* Garbage Collection <Badge text="Kuboard 暂不支持" type="warn"/>
* TTL Controller for Finished Resources <Badge text="Kuboard 暂不支持" type="warn"/>
* [ReplicaSet](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/)<Badge text="使用 Deployment" type="error"/>
> Kubernetes 官方推荐使用 Deployment 替代 ReplicaSet
* [ReplicationController](https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/) <Badge text="使用 Deployment" type="error"/>
> Kubernetes 官方推荐使用 Deployment 替代 ReplicationController
* [Garbage Collection](https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/)
> Kuboard 暂时不支持
* [TTL Controller for Finished Resources](https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/)
> Kuboard 暂时不支持
::: tip
常规的部署任务中所需要的控制器类型Kuboard 都已经支持。以典型的 Spring Cloud 等微服务框架而言Kuboard 已经可以非常好地对其进行运维和管理。
:::

View File

@ -129,7 +129,7 @@ Kuboard 为 Kubernetes 初学者设计了如下学习路径:
* [容器组 - 生命周期](/learning/k8s-intermediate/workload/pod-lifecycle.html)
* [容器组 - 初始化容器](/learning/k8s-intermediate/workload/init-container.html)
* [控制器 - 概述](/learning/k8s-intermediate/workload/workload.html)
* [控制器 - Deployment](/learning/k8s-intermediate/workload/wl-deployment.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - Deployment](/learning/k8s-intermediate/workload/wl-deployment.html)
* [控制器 - StatefulSet](/learning/k8s-intermediate/workload/wl-statefulset.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - DaemonSet](/learning/k8s-intermediate/workload/wl-daemonset.html) <Badge text="正在撰写" type="warn"/>
* [控制器 - Job](/learning/k8s-intermediate/workload/wl-job.html) <Badge text="正在撰写" type="warn"/>
@ -188,6 +188,15 @@ Kuboard 为您的这些痛苦提供了极佳的解决方案,请立刻开始:
正在编写文档,[准备好后,请通知我](https://www.wjx.top/jq/43453748.aspx)
## 在线提问
## 在线答疑
![Kuboard 兴趣群二维码](./README.assets/kuboard_qq.png)
<div>
<div style="margin-top: 10px;">未打赏用户可进 QQ 群聊,<span style="color: red;">打赏用户可进微信群聊</span></div>
<div style="margin-top: 10px;">
<span>扫第一个二维码完成打赏,扫第二个进微信群聊。</span> <span style="color: #CCC">QQ 群聊二维码在左侧导航栏下方。</span>
<p style="margin-top: 10px;">
<img src="/dz.png" style="width: 200px; margin-right: 150px;"></img>
<img src="/dz2.jpeg" style="width: 200px;"></img>
</p>
</div>
</div>

View File

@ -2,6 +2,10 @@
**发布日期**
**新特性**
* 设置菜单中可查看 kubernetes 版本信息
* 存储卷声明去掉分配模式的字段
* 存储卷声明增加 Volume Modes 字段
* 存储卷声明将 读写模式 修改为 Access Modes