seo优化
This commit is contained in:
@ -38,7 +38,7 @@ description: 本文详细讲解了 Kubernetes Deployment 的概念,并描述
|
||||
|
||||
## 在 Kubernetes 上部署第一个应用程序
|
||||
|
||||

|
||||

|
||||
|
||||
上图是在第一篇文章的基础上,添加上了Deployment、Pod和Container。
|
||||
|
||||
@ -135,13 +135,13 @@ kubectl get pods
|
||||
|
||||
**打开 Kuboard 集群概览界面**,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
**点击 default 名称空间**
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
@ -160,7 +160,7 @@ kubectl get pods
|
||||
| 镜像 | nginx:1.7.9 | |
|
||||
| 抓取策略 | Always | 每次创建 Pod 都尝试抓取镜像 |
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ description: 本文介绍了如何使用 kubectl / Kuboard 查看和浏览 Kuber
|
||||
|
||||
## Pods概述
|
||||
|
||||
<img src="./explore.assets/module_03_pods.svg" style="border: 1px solid #d7dae2; max-width: 800px;"></img>
|
||||
<img src="./explore.assets/module_03_pods.svg" style="border: 1px solid #d7dae2; max-width: 800px;" alt="Kubernetes教程:Pod概念"></img>
|
||||
|
||||
|
||||
**Pod 容器组** 是一个k8s中一个抽象的概念,用于存放一组 container(可包含一个或多个 container 容器,即图上正方体),以及这些 container (容器)的一些共享资源。这些资源包括:
|
||||
@ -43,7 +43,7 @@ Pod(容器组)是 k8s 集群上的最基本的单元。当我们在 k8s 上
|
||||
|
||||
下图显示一个 Node(节点)上含有4个 Pod(容器组)
|
||||
|
||||
<img src="./explore.assets/module_03_nodes.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./explore.assets/module_03_nodes.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:Node概念"></img>
|
||||
|
||||
Pod(容器组)总是在 **Node(节点)** 上运行。Node(节点)是 kubernetes 集群中的计算机,可以是虚拟机或物理机。每个 Node(节点)都由 master 管理。一个 Node(节点)可以有多个Pod(容器组),kubernetes master 会根据每个 Node(节点)上可用资源的情况,自动调度 Pod(容器组)到最佳的 Node(节点)上。
|
||||
|
||||
@ -114,11 +114,11 @@ Pod(容器组)总是在 **Node(节点)** 上运行。Node(节点)是
|
||||
|
||||
**在名称空间中查看部署**
|
||||
|
||||

|
||||

|
||||
|
||||
**查看部署及其容器组**
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ Service是一个抽象层,它通过 LabelSelector 选择了一组 Pod(容器
|
||||
Service A 将请求转发到 IP 为 10.10.10.1 的Pod上,
|
||||
Service B 将请求转发到 IP 为 10.10.10.2、10.10.10.3、10.10.10.4 的Pod上。
|
||||
|
||||
<img src="./expose.assets/module_04_services.svg" style="border: 1px solid #d7dae2; width: 600px;"></img>
|
||||
<img src="./expose.assets/module_04_services.svg" style="border: 1px solid #d7dae2; width: 600px;" alt="Kubernetes教程:服务和标签"></img>
|
||||
|
||||
|
||||
Service 将外部请求路由到一组 Pod 中,它提供了一个抽象层,使得 Kubernetes 可以在不影响服务调用者的情况下,动态调度容器组<font color="#AAAAAA">(在容器组失效后重新创建容器组,增加或者减少同一个 Deployment 对应容器组的数量等)</font>。
|
||||
@ -65,7 +65,7 @@ Service使用 [Labels、LabelSelector(标签和选择器)](https://kubernetes.io
|
||||
* 通过 Deployment B 创建的 Pod 包含标签为 app=B
|
||||
* Service B 通过标签选择器 app=B 选择可以路由的 Pod
|
||||
|
||||
<img src="./expose.assets/module_04_labels.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./expose.assets/module_04_labels.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:服务和标签"></img>
|
||||
|
||||
Labels(标签)可以在创建 Kubernetes 对象时附加上去,也可以在创建之后再附加上去。任何时候都可以修改一个 Kubernetes 对象的 Labels(标签)
|
||||
|
||||
@ -179,7 +179,7 @@ curl <任意节点的 IP>:32600
|
||||
|
||||
如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击 **保存**
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括
|
||||
|
||||
集群是一组节点,这些节点可以是物理服务器或者虚拟机,之上安装了Kubernetes平台。下图展示这样的集群。注意该图为了强调核心概念有所简化。这里可以看到一个典型的Kubernetes架构图。
|
||||
|
||||

|
||||

|
||||
|
||||
上图可以看到如下组件,使用特别的图标表示Service和Label:
|
||||
|
||||
@ -63,7 +63,7 @@ Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括
|
||||
|
||||
Replication Controller确保任意时间都有指定数量的Pod“副本”在运行。如果为某个Pod创建了Replication Controller并且指定3个副本,它会创建3个Pod,并且持续监控它们。如果某个Pod不响应,那么Replication Controller会替换它,保持总数为3.如下面的动画所示:
|
||||
|
||||

|
||||

|
||||
|
||||
如果之前不响应的Pod恢复了,现在就有4个Pod了,那么Replication Controller会将其中一个终止保持总数为3。如果在运行中将副本总数改为5,Replication Controller会立刻启动2个新Pod,保证总数为5。还可以按照这样的方式缩小Pod,这个特性在执行滚动 [升级](https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#rolling_updates) 时很有用。
|
||||
|
||||
@ -93,7 +93,7 @@ Replication Controller确保任意时间都有指定数量的Pod“副本”在
|
||||
|
||||
下述动画展示了Service的功能。注意该图作了很多简化。如果不进入网络配置,那么达到透明的负载均衡目标所涉及的底层网络和路由相对先进。如果有兴趣,有更深入的介绍。
|
||||
|
||||

|
||||

|
||||
|
||||
每个节点都运行如下Kubernetes关键组件:
|
||||
|
||||
|
||||
@ -34,11 +34,11 @@ description: 本文为初学者介绍了一套最合适的 Kubernetes 入门教
|
||||
|
||||
本篇中我们先从第一部分入手,对k8s集群有个整体上的把握。
|
||||
|
||||
<img src="./kubernetes-basics.assets/module_01.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./kubernetes-basics.assets/module_01.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:Kubernetes集群"></img>
|
||||
|
||||
上图描述的是拥有一个Master(主)节点和六个Worker(工作)节点的k8s集群
|
||||
|
||||

|
||||

|
||||
|
||||
**Master 负责管理集群** 负责协调集群中的所有活动,例如调度应用程序,维护应用程序的状态,扩展和更新应用程序。
|
||||
|
||||
|
||||
@ -26,11 +26,11 @@ spec:
|
||||
|
||||
下图中,Service A 只将访问流量转发到 IP 为 10.0.0.5 的Pod上
|
||||
|
||||
<img src="./scale.assets/module_05_scaling1.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./scale.assets/module_05_scaling1.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:伸缩"></img>
|
||||
|
||||
修改了 Deployment 的 replicas 为 4 后,Kubernetes 又为该 Deployment 创建了 3 新的 Pod,这 4 个 Pod 有相同的标签。因此Service A通过标签选择器与新的 Pod建立了对应关系,将访问流量通过负载均衡在 4 个 Pod 之间进行转发。
|
||||
|
||||
<img src="./scale.assets/module_05_scaling2.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./scale.assets/module_05_scaling2.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:伸缩"></img>
|
||||
|
||||
::: tip
|
||||
通过更改部署中的 replicas(副本数)来完成扩展
|
||||
@ -94,13 +94,13 @@ watch kubectl get pods -o wide
|
||||
|
||||
副本数: 4
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击 ***确定*** 按钮
|
||||
|
||||
等待新增的容器组完成初始化,如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
:::
|
||||
|
||||
|
||||
@ -23,21 +23,21 @@ description: 本文详细讲解了 Kubernetes Rolling Update 的概念,并描
|
||||
|
||||
1. 原本 Service A 将流量负载均衡到 4 个旧版本的 Pod (当中的容器为 绿色)上
|
||||
|
||||
<img src="./update.assets/module_06_rollingupdates1.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./update.assets/module_06_rollingupdates1.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:滚动更新1"></img>
|
||||
|
||||
2. 更新完 Deployment 部署文件中的镜像版本后,master 节点选择了一个 worker 节点,并根据新的镜像版本创建 Pod(紫色容器)。新 Pod 拥有唯一的新的 IP。同时,master 节点选择一个旧版本的 Pod 将其移除。
|
||||
|
||||
此时,Service A 将新 Pod 纳入到负载均衡中,将旧Pod移除
|
||||
|
||||
<img src="./update.assets/module_06_rollingupdates2.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./update.assets/module_06_rollingupdates2.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:滚动更新2"></img>
|
||||
|
||||
3. 同步骤2,再创建一个新的 Pod 替换一个原有的 Pod
|
||||
|
||||
<img src="./update.assets/module_06_rollingupdates3.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./update.assets/module_06_rollingupdates3.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:滚动更新3"></img>
|
||||
|
||||
4. 如此 Rolling Update 滚动更新,直到所有旧版本 Pod 均移除,新版本 Pod 也达到 Deployment 部署文件中定义的副本数,则滚动更新完成
|
||||
|
||||
<img src="./update.assets/module_06_rollingupdates4.svg" style="border: 1px solid #d7dae2; max-width: 600px;"></img>
|
||||
<img src="./update.assets/module_06_rollingupdates4.svg" style="border: 1px solid #d7dae2; max-width: 600px;" alt="Kubernetes教程:滚动更新4"></img>
|
||||
|
||||
滚动更新允许以下操作:
|
||||
|
||||
@ -106,7 +106,7 @@ watch kubectl get pods -l app=nginx
|
||||
|
||||
填写新的 nginx 版本号: 1.8, 如下图所示:
|
||||
|
||||

|
||||

|
||||
|
||||
* 点击 ***变更***
|
||||
|
||||
@ -116,7 +116,7 @@ watch kubectl get pods -l app=nginx
|
||||
|
||||
可观察到 Kubernetes 对 ***Nginx部署*** 执行滚动更新的过程,如下图所示
|
||||
|
||||

|
||||

|
||||
|
||||
:::
|
||||
|
||||
|
||||
Reference in New Issue
Block a user