From 0de03a50a8986e6ee2581658e7ab800d2abf26cb Mon Sep 17 00:00:00 2001 From: Dragons Date: Sat, 24 Jun 2017 10:31:19 +0800 Subject: [PATCH] kubernetes-basics-expose-pr --- .../kubernetes-basics/expose-interactive.html | 2 +- .../kubernetes-basics/expose-intro.html | 89 +++++++------------ 2 files changed, 32 insertions(+), 59 deletions(-) mode change 100755 => 100644 cn/docs/tutorials/kubernetes-basics/expose-interactive.html mode change 100755 => 100644 cn/docs/tutorials/kubernetes-basics/expose-intro.html diff --git a/cn/docs/tutorials/kubernetes-basics/expose-interactive.html b/cn/docs/tutorials/kubernetes-basics/expose-interactive.html old mode 100755 new mode 100644 index 4cae319edf..e41ebcfc37 --- a/cn/docs/tutorials/kubernetes-basics/expose-interactive.html +++ b/cn/docs/tutorials/kubernetes-basics/expose-interactive.html @@ -1,5 +1,5 @@ --- -title: 交互性教程 - 应用外部可见 +title: 互动教程 - 应用外部可见 --- diff --git a/cn/docs/tutorials/kubernetes-basics/expose-intro.html b/cn/docs/tutorials/kubernetes-basics/expose-intro.html old mode 100755 new mode 100644 index b70e1d2de1..1e133f95fd --- a/cn/docs/tutorials/kubernetes-basics/expose-intro.html +++ b/cn/docs/tutorials/kubernetes-basics/expose-intro.html @@ -1,5 +1,5 @@ --- -title: 使用服务让您的应用程序外部可见 +title: 使用服务公开您的应用程序 --- @@ -15,40 +15,41 @@ title: 使用服务让您的应用程序外部可见
- -
-

目标

+
+

目标

    -
  • 了解 Kubernetes 服务
  • -
  • 了解 Kubernetes 标签
  • -
  • 应用程序在 Kubernetes 外部可见
  • +
  • 了解 Kubernetes 中的服务
  • +
  • 了解标签和标签选择器对象如何与服务相关联
  • +
  • 使用服务在 Kubernetes 群集外公开应用程序
-

Kubernetes Services

+

Kubernetes 服务概述

-

虽然每个 Pod 在所在的集群中拥有自己独立的 IP 地址,但这些 IP 地址不会暴露在 Kubernetes 集群外部。考虑到 Pod 可能随时会被终止、删除或被其他 Pod 替换,我们需要一种方法让其他 Pod 和应用程序自动发现彼此。Kubernetes 通过 Service 对 Pods 进行分组来解决此问题。一个 Kubernetes Service 是一个抽象层,它定义了一组逻辑的 Pods,并让这些 Pods 对外部流量可见,可以被负载均衡和服务发现。

+

Kubernetes Pods 终有一死. Pods 实际上有一个 生命周期. 当工作节点死机时, 节点上运行的Pod也将丢失。 一个 ReplicationController 可能会通过创建新的Pod以动态地将集群恢复到所需的状态,以保持您的应用程序运行。还有一种方法就是:决定是否使用具有3个副本的图像处理后端。这些副本是可替代的前端系统不应关心后端副本,即使Pod丢失并重建也不会更改。 也就是说,Kubernetes 集群中的每个 Pod 都有一个唯一的IP地址,即使在同一个节点上的 Pods 也是如此,所以此时就需要一种自动调整更改 Pod 的方法, 以便您的应用程序继续运行。输入 服务. Kubernetes 中的服务是一个抽象对象,它定义了一组逻辑的 Pods 和一个访问它们的策略。 服务让互相依赖的 Pod 之间的耦合松动。 服务由 YAML (首选) 或 JSON 定义。像所有 Kubernetes 对象一样。 针对服务的一组 Pod 通常由Label选择器确定(参见下文,为什么您可能希望不将 选择器 包含在规范中。

-

此抽象允许我们将 Pods 暴露给集群外部的流量访问。Services 具有自己的唯一集群专用 IP 地址,并显示一个端口以接收流量。如果选择在集群外公开 Service,则有如下选项:

+

虽然每个 Pod 都有一个唯一的 IP 地址,但是这些 IP 不会在没有服务的情况下公开在群集之外。服务允许您的应用程序接收流量。 可以通过在 ServiceSpec 中指定类型 以不同方式显示服务:

    -
  • LoadBalancer - 提供公有 IP 地址 (在 GCP 或 AWS 上运行 Kubernetes 通常使用此方式)
  • -
  • NodePort - 使用 NAT 在集群的每个 Node 节点的同一端口让服务可见。(所有 Kubernetes 集群和 Minikube 中都可用此方式)
  • +
  • ClusterIP(默认) - 在集群中的内部IP上公开服务。此类型使服务只能从集群中访问。
  • +
  • NodePort —— 使用NAT在群集中每个选定的节点的同一端口上显示该服务。使用 :可以从群集外部访问服务。建立 ClusterIP 的超集.
  • +
  • LoadBalancer —— 在当前云中创建外部负载平衡器(如果支持),并为服务分配固定的外部IP。建立 NodePort 的超集。
  • +
  • ExternalName —— 使用任意名称显示该服务(由规范中的externalName 指定),本过程通过使用该名称返回 CNAME 记录达成。无须使用代理。这种类型需要 v1.7 或更高版本的 kube-dns.
+

有关不同类型服务的详细信息,请参见 使用源IP 教程。另请参阅 使用服务连接应用程序.

+

另外,请注意,服务中有一些使用案例涉及在规范中不定义选择器 。不使用 选择器 创建的服务也不会创建相应的端点对象。 这允许用户手动将服务映射到特定端点。没有选择器还有可能是因为您严格地使用了 type: ExternalName.

-

摘要:

+

摘要

    -
  • Pod 流量外部可见
  • -
  • Pods 流量负载均衡
  • +
  • 对外部流量曝光 Pod
  • +
  • 跨多个 Pods 进行流量负载均衡
  • 使用标签
-

- Kubernetes Service 是一个抽象层,它定义了一组逻辑的 Pods,并为这些 Pods 启用了外部流量访问、负载均衡和服务发现。 -

+

Kubernetes 服务是一个抽象层,它定义了一组逻辑的Pods,并为这些Pods启用了外部流量曝光、负载平衡和服务发现。

@@ -56,57 +57,35 @@ title: 使用服务让您的应用程序外部可见
-

Services 概述

+

服务和标签

-

-
-
-
- -
-
- -

一个 Service 提供了一组 Pods 的流量负载均衡。通过创建服务以对来自特定部署的所有 Pods 进行分组时,这是有用的(当我们有多个实例运行时,我们的应用程序将在下一个模块中使用这一点)。

- -

Services 还负责集群内部的服务发现 (包含在 访问服务中)。 例如,这将允许前端服务 (如 web 服务器) 从后端服务 (如 数据库) 接收流量,而不必考虑 Pod。

- -

Services 使用标签选择器匹配一组 Pods,标签选择器支持在标签上进行原始逻辑分组的能力。

- -
-
-
-

您可以通过添加 --expose 作为 kubectl 运行命令的参数,在创建 Deployment 的同时创建 Service。

-
+

-
-
-

Labels 是附加到对象的 键/值对,例如 Pods,您可以将它们视为社交媒体的标签符号。它们用于以对用户有意义的方式组织相关对象,如:

+

A服务可以跨一组 Pod 路由流量。服务是允许 Pod 在 Kubernetes 中死亡和复制而不影响应用程序的抽象层。相关 Pod 之间的发现和路由(如应用程序中的前端和后端组件)是由 Kubernetes Services 处理的。

+

服务使用 标签和选择器, 匹配一组 Pod,成为分组原语,此原语允许在 Kubernetes 中的对象进行逻辑运算。标签是一对附加到对象的关键/重要组,可以以多种方式使用,方式如下:

    -
  • 生产环境 (生产、测试、开发)
  • -
  • 应用程序版本 (beta、v1.3)
  • -
  • 服务类型 (前端、后端、数据库)
  • +
  • 指定用于开发、测试和生产的对象
  • +
  • 嵌入版本标签
  • +
  • 使用标签分类对象
+
-

Labels 是附加到对象的键/值对。

+

您可以在使用
--expose 在 kubectl 中创建部署的同时创建服务.

+
-
-
-

Labels

-
-
@@ -116,22 +95,16 @@ title: 使用服务让您的应用程序外部可见
- -

Labels 可以在创建时或以后附加到对象,并可以随时修改。 - 在使用 kubectl run 命令新建 Pods/Deployment 时,会设置一些默认的 Labels/Label。标签和标签选择器之间的链接定义了 Deployment 及其创建 Pod 之间的关系。

- -

现在,让我们在 Service 的帮助下公开我们的应用程序,并应用一些新的标签。

+

标签可以在创建时或之后附加到对象后,并支持随时修改。让我们现在开始使用服务公开我们的应用程序并应用一些标签吧。


-
-