From 6f2ca512b13a331ade1354c12e06cea80c7cf22d Mon Sep 17 00:00:00 2001 From: Guangwen Feng Date: Tue, 28 Jun 2022 16:04:02 +0800 Subject: [PATCH] [zh-cn] Remove Service Catalog references Signed-off-by: Guangwen Feng --- .../extend-kubernetes/service-catalog.md | 445 ------------------ .../reference/glossary/managed-service.md | 7 - .../docs/reference/glossary/service-broker.md | 47 -- .../reference/glossary/service-catalog.md | 11 +- .../docs/tasks/service-catalog/_index.md | 5 - .../install-service-catalog-using-helm.md | 158 ------- .../install-service-catalog-using-sc.md | 129 ----- 7 files changed, 5 insertions(+), 797 deletions(-) delete mode 100644 content/zh-cn/docs/concepts/extend-kubernetes/service-catalog.md delete mode 100644 content/zh-cn/docs/reference/glossary/service-broker.md delete mode 100644 content/zh-cn/docs/tasks/service-catalog/_index.md delete mode 100644 content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-helm.md delete mode 100644 content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-sc.md diff --git a/content/zh-cn/docs/concepts/extend-kubernetes/service-catalog.md b/content/zh-cn/docs/concepts/extend-kubernetes/service-catalog.md deleted file mode 100644 index cb4eb28e40..0000000000 --- a/content/zh-cn/docs/concepts/extend-kubernetes/service-catalog.md +++ /dev/null @@ -1,445 +0,0 @@ ---- -title: 服务目录 -content_type: concept -weight: 40 ---- - - - -{{< glossary_definition term_id="service-catalog" length="all" prepend="服务目录(Service Catalog)是" >}} - - -服务代理(Service Broker)是由[Open Service Broker API 规范](https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md)定义的一组托管服务的端点,这些服务由第三方提供并维护,其中的第三方可以是 AWS、GCP 或 Azure 等云服务提供商。 -托管服务的一些示例是 Microsoft Azure Cloud Queue、Amazon Simple Queue Service 和 Google Cloud Pub/Sub,但它们可以是应用程序能够使用的任何软件交付物。 - -使用服务目录,{{< glossary_tooltip text="集群操作员" term_id="cluster-operator" >}} -可以浏览某服务代理所提供的托管服务列表,供应托管服务实例并与之绑定, -以使其可以被 Kubernetes 集群中的应用程序使用。 - - - -## 示例用例 - -{{< glossary_tooltip text="应用开发人员" term_id="application-developer" >}}, -希望使用消息队列,作为其在 Kubernetes 集群中运行的应用程序的一部分。 -但是,他们不想承受构造这种服务的开销,也不想自行管理。 -幸运的是,有一家云服务提供商通过其服务代理以托管服务的形式提供消息队列服务。 - -集群操作员可以设置服务目录并使用它与云服务提供商的服务代理通信,进而部署消息队列服务的实例 -并使其对 Kubernetes 中的应用程序可用。 -应用开发者于是可以不关心消息队列的实现细节,也不用对其进行管理。 -他们的应用程序可以简单的将其作为服务使用。 - - -## 架构 {#architecture} - -服务目录使用[Open Service Broker API](https://github.com/openservicebrokerapi/servicebroker) -与服务代理进行通信,并作为 Kubernetes API 服务器的中介,以便协商启动部署和获取 -应用程序使用托管服务时必须的凭据。 - -它是[基于 CRDs](/zh-cn/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources) -架构实现的。 - -![服务目录架构](/images/docs/service-catalog-architecture.svg) - - -## API 资源 {#api-resources} - -服务目录安装 `servicecatalog.k8s.io` API 并提供以下 Kubernetes 资源: - -* `ClusterServiceBroker`:服务目录的集群内表现形式,封装了其服务连接细节。集群运维人员创建和管理这些资源,并希望使用该代理服务在集群中提供新类型的托管服务。 -* `ClusterServiceClass`:由特定服务代理提供的托管服务。当新的 `ClusterServiceBroker` 资源被添加到集群时,服务目录控制器将连接到服务代理以获取可用的托管服务列表。然后为每个托管服务创建对应的新 `ClusterServiceClass` 资源。 -* `ClusterServicePlan`:托管服务的特定产品。例如托管服务可能有不同的计划可用,如免费版本和付费版本,或者可能有不同的配置选项,例如使用 SSD 存储或拥有更多资源。与 `ClusterServiceClass` 类似,当一个新的 `ClusterServiceBroker` 被添加到集群时,服务目录会为每个托管服务的每个可用服务计划创建对应的新 `ClusterServicePlan` 资源。 -* `ServiceInstance`:`ClusterServiceClass` 提供的示例。由集群运维人员创建,以使托管服务的特定实例可供一个或多个集群内应用程序使用。当创建一个新的 `ServiceInstance` 资源时,服务目录控制器将连接到相应的服务代理并指示它调配服务实例。 -* `ServiceBinding`:`ServiceInstance` 的访问凭据。由希望其应用程序使用服务 `ServiceInstance` 的集群运维人员创建。创建之后,服务目录控制器将创建一个 Kubernetes `Secret`,其中包含服务实例的连接细节和凭据,可以挂载到 Pod 中。 - - -### 认证 {#authentication} - -服务目录支持这些认证方法: - -* 基本认证(用户名/密码) -* [OAuth 2.0 不记名令牌](https://tools.ietf.org/html/rfc6750) - - -## 使用方式 - -集群运维人员可以使用服务目录 API 资源来供应托管服务并使其在 Kubernetes 集群内可用。涉及的步骤有: - -1. 列出服务代理提供的托管服务和服务计划。 -2. 配置托管服务的新实例。 -3. 绑定到托管服务,它将返回连接凭证。 -4. 将连接凭证映射到应用程序中。 - - -### 列出托管服务和服务计划 - -首先,集群运维人员在 `servicecatalog.k8s.io` 组内创建一个 `ClusterServiceBroker` 资源。此资源包含访问服务代理终结点所需的 URL 和连接详细信息。 - -这是一个 `ClusterServiceBroker` 资源的例子: - -```yaml -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ClusterServiceBroker -metadata: - name: cloud-broker -spec: - # 指向服务代理的末端。(这里的 URL 是无法使用的。) - url: https://servicebroker.somecloudprovider.com/v1alpha1/projects/service-catalog/brokers/default - ##### - # 这里可以添加额外的用来与服务代理通信的属性值, - # 例如持有者令牌信息或者 TLS 的 CA 包。 - ##### -``` - - -下面的时序图展示了从服务代理列出可用托管服务和计划所涉及的各个步骤: - -![列举服务](/images/docs/service-catalog-list.svg) - -1. 一旦 `ClusterServiceBroker` 资源被添加到了服务目录之后,将会触发一个到外部服务代理的 - 调用,以列举所有可用服务; -1. 服务代理返回可用的托管服务和服务计划列表,这些列表将本地缓存在 `ClusterServiceClass` - 和 `ClusterServicePlan` 资源中。 -1. 集群运维人员接下来可以使用以下命令获取可用托管服务的列表: - - - - ```shell - kubectl get clusterserviceclasses \ - -o=custom-columns=SERVICE\ NAME:.metadata.name,EXTERNAL\ NAME:.spec.externalName - ``` - - 它应该输出一个和以下格式类似的服务名称列表: - - ``` - SERVICE NAME EXTERNAL NAME - 4f6e6cf6-ffdd-425f-a2c7-3c9258ad2468 cloud-provider-service - ... ... - ``` - - 他们还可以使用以下命令查看可用的服务计划: - - ```shell - kubectl get clusterserviceplans \ - -o=custom-columns=PLAN\ NAME:.metadata.name,EXTERNAL\ NAME:.spec.externalName - ``` - - 它应该输出一个和以下格式类似的服务计划列表: - - ``` - PLAN NAME EXTERNAL NAME - 86064792-7ea2-467b-af93-ac9694d96d52 service-plan-name - ... ... - ``` - - -### 供应一个新实例 - -集群运维人员 可以通过创建一个 `ServiceInstance` 资源来启动一个新实例的配置。 - -下面是一个 `ServiceInstance` 资源的例子: - -```yaml -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceInstance -metadata: - name: cloud-queue-instance - namespace: cloud-apps -spec: - # 引用之前返回的服务之一 - clusterServiceClassExternalName: cloud-provider-service - clusterServicePlanExternalName: service-plan-name - ##### - # 这里可添加额外的参数,供服务代理使用 - ##### -``` - - -以下时序图展示了配置托管服务新实例所涉及的步骤: - -![供应服务](/images/docs/service-catalog-provision.svg) - -1. 创建 `ServiceInstance` 资源时,服务目录将启动一个到外部服务代理的调用, - 请求供应一个实例。 -1. 服务代理创建一个托管服务的新实例并返回 HTTP 响应。 -1. 接下来,集群运维人员可以检查实例的状态是否就绪。 - - -### 绑定到托管服务 - -在设置新实例之后,集群运维人员必须绑定到托管服务才能获取应用程序使用服务所需的连接凭据和服务账户的详细信息。该操作通过创建一个 `ServiceBinding` 资源完成。 - -以下是 `ServiceBinding` 资源的示例: - -```yaml -apiVersion: servicecatalog.k8s.io/v1beta1 -kind: ServiceBinding -metadata: - name: cloud-queue-binding - namespace: cloud-apps -spec: - instanceRef: - name: cloud-queue-instance - ##### - # 这里可以添加供服务代理使用的额外信息,例如 Secret 名称或者服务账号参数, - ##### -``` - - -以下顺序图展示了绑定到托管服务实例的步骤: - -![绑定到托管服务](/images/docs/service-catalog-bind.svg) - -1. 在创建 `ServiceBinding` 之后,服务目录调用外部服务代理,请求绑定服务实例所需的信息。 -1. 服务代理为相应服务账户启用应用权限/角色。 -1. 服务代理返回连接和访问托管服务示例所需的信息。这是由提供商和服务特定的,故返回的信息可能因服务提供商和其托管服务而有所不同。 - - -### 映射连接凭据 - -完成绑定之后的最后一步就是将连接凭据和服务特定的信息映射到应用程序中。这些信息存储在 secret 中,集群中的应用程序可以访问并使用它们直接与托管服务进行连接。 - -
- -![映射连接凭据](/images/docs/service-catalog-map.svg) - - -#### Pod 配置文件 - -执行此映射的一种方法是使用声明式 Pod 配置。 - -以下示例描述了如何将服务账户凭据映射到应用程序中。名为 `sa-key` 的密钥保存在一个名为 -`provider-cloud-key` 的卷中,应用程序会将该卷挂载在 `/var/secrets/provider/key.json` -路径下。环境变量 `PROVIDER_APPLICATION_CREDENTIALS` 将映射为挂载文件的路径。 - -```yaml -... - spec: - volumes: - - name: provider-cloud-key - secret: - secretName: sa-key - containers: -... - volumeMounts: - - name: provider-cloud-key - mountPath: /var/secrets/provider - env: - - name: PROVIDER_APPLICATION_CREDENTIALS - value: "/var/secrets/provider/key.json" -``` - - -以下示例描述了如何将 Secret 值映射为应用程序的环境变量。 -在这个示例中,消息队列的主题名从 Secret `provider-queue-credentials` 中名为 -`topic` 的主键映射到环境变量 `TOPIC` 中。 - -```yaml -... - env: - - name: "TOPIC" - valueFrom: - secretKeyRef: - name: provider-queue-credentials - key: topic -``` - -## {{% heading "whatsnext" %}} - - -* 如果你熟悉 {{< glossary_tooltip text="Helm Charts" term_id="helm-chart" >}}, - 可以[使用 Helm 安装服务目录](/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-helm/) - 到 Kubernetes 集群中。或者,你可以 - [使用 SC 工具安装服务目录](/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-sc/)。 -* 查看[服务代理示例](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md#sample-service-brokers) -* 浏览 [kubernetes-sigs/service-catalog](https://github.com/kubernetes-sigs/service-catalog) 项目 - - diff --git a/content/zh-cn/docs/reference/glossary/managed-service.md b/content/zh-cn/docs/reference/glossary/managed-service.md index d115469431..9863824a25 100644 --- a/content/zh-cn/docs/reference/glossary/managed-service.md +++ b/content/zh-cn/docs/reference/glossary/managed-service.md @@ -34,13 +34,6 @@ tags: 托管服务的一些例子有 AWS EC2、Azure SQL 数据库和 GCP Pub/Sub 等, 不过它们也可以是可以被某应用使用的任何软件交付件。 -[服务目录](/zh-cn/docs/concepts/extend-kubernetes/service-catalog/) -提供了一种方法用来列举、制备和绑定到 -{{< glossary_tooltip text="服务代理商(Service Brokers)" term_id="service-broker" >}} -所提供的托管服务。 diff --git a/content/zh-cn/docs/reference/glossary/service-broker.md b/content/zh-cn/docs/reference/glossary/service-broker.md deleted file mode 100644 index 4e477b4edc..0000000000 --- a/content/zh-cn/docs/reference/glossary/service-broker.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: 服务代理(Service Broker) -id: service-broker -date: 2018-04-12 -full_link: -short_description: > - 由第三方提供并维护的一组托管服务的访问端点。 - -aka: -tags: -- extension ---- - - - - -由第三方提供并维护的一组{{< glossary_tooltip text="托管服务" term_id="managed-service">}}的访问端点。 - - - - - -{{< glossary_tooltip text="服务代理(Service Brokers)" term_id="service-broker">}}会实现 -[开放服务代理 API 规范](https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md) -并为应用提供使用其托管服务的标准接口。 -[服务目录(Service Catalog)](/zh-cn/docs/concepts/extend-kubernetes/service-catalog/)则提供一种方法,用来列举、供应和绑定服务代理商所提供的托管服务。 diff --git a/content/zh-cn/docs/reference/glossary/service-catalog.md b/content/zh-cn/docs/reference/glossary/service-catalog.md index 134085e034..a50e6e4778 100644 --- a/content/zh-cn/docs/reference/glossary/service-catalog.md +++ b/content/zh-cn/docs/reference/glossary/service-catalog.md @@ -18,7 +18,7 @@ id: service-catalog date: 2018-04-12 full_link: short_description: > - An extension API that enables applications running in Kubernetes clusters to easily use external managed software offerings, such as a datastore service offered by a cloud provider. + A former extension API that enables applications running in Kubernetes clusters to easily use external managed software offerings, such as a datastore service offered by a cloud provider. aka: tags: @@ -28,18 +28,17 @@ tags: -服务目录是一种扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。 +服务目录是一种过去曾经存在的扩展 API,它能让 Kubernetes 集群中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。 -服务目录可以检索、供应、和绑定由 {{< glossary_tooltip text="服务代理人(Service Brokers)" term_id="service-broker" >}} -提供的外部{{< glossary_tooltip text="托管服务(Managed Services)" term_id="managed-service" >}}, +服务目录可以检索、供应、和绑定外部{{< glossary_tooltip text="托管服务(Managed Services)" term_id="managed-service" >}}, 而无需知道那些服务具体是怎样创建和托管的。 diff --git a/content/zh-cn/docs/tasks/service-catalog/_index.md b/content/zh-cn/docs/tasks/service-catalog/_index.md deleted file mode 100644 index 1d12ab1465..0000000000 --- a/content/zh-cn/docs/tasks/service-catalog/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "安装服务目录" -weight: 150 -description: 安装服务目录扩展 API。 ---- diff --git a/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-helm.md b/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-helm.md deleted file mode 100644 index 61afab1b33..0000000000 --- a/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-helm.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: 使用 Helm 安装 Service Catalog -content_type: task ---- - - - -{{< glossary_definition term_id="service-catalog" length="all" prepend="服务目录(Service Catalog)是" >}} - - -使用 [Helm](https://helm.sh/) 在 Kubernetes 集群上安装 Service Catalog。 -要获取有关此过程的最新信息,请浏览 [kubernetes-incubator/service-catalog](https://github.com/kubernetes-incubator/service-catalog/blob/master/docs/install.md) 仓库。 - - -## {{% heading "prerequisites" %}} - - -* 理解[服务目录](/zh-cn/docs/concepts/extend-kubernetes/service-catalog/) 的关键概念。 -* Service Catalog 需要 Kubernetes 集群版本在 1.7 或更高版本。 -* 你必须启用 Kubernetes 集群的 DNS 功能。 - * 如果使用基于云的 Kubernetes 集群或 {{< glossary_tooltip text="Minikube" term_id="minikube" >}},则可能已经启用了集群 DNS。 - * 如果你正在使用 `hack/local-up-cluster.sh`,请确保设置了 `KUBE_ENABLE_CLUSTER_DNS` 环境变量,然后运行安装脚本。 -* [安装和设置 v1.7 或更高版本的 kubectl](/zh-cn/docs/tasks/tools/),确保将其配置为连接到 Kubernetes 集群。 -* 安装 v2.7.0 或更高版本的 [Helm](https://helm.sh/)。 - * 遵照 [Helm 安装说明](https://helm.sh/docs/intro/install/)。 - * 如果已经安装了适当版本的 Helm,请执行 `helm init` 来安装 Helm 的服务器端组件 Tiller。 - - - -## 添加 service-catalog Helm 仓库 - -安装 Helm 后,通过执行以下命令将 *service-catalog* Helm 存储库添加到本地计算机: - -```shell -helm repo add svc-cat https://kubernetes-sigs.github.io/service-catalog -``` - - -通过执行以下命令进行检查,以确保安装成功: - -```shell -helm search service-catalog -``` - - -如果安装成功,该命令应输出以下内容: - -``` -NAME VERSION DESCRIPTION -svc-cat/catalog 0.0.1 service-catalog API server and controller-manag... -``` - - -## 启用 RBAC - -你的 Kubernetes 集群必须启用 RBAC,这需要你的 Tiller Pod 具有 `cluster-admin` 访问权限。 - -如果你使用的是 Minikube,请使用以下参数运行 `minikube start` 命令: - -```shell -minikube start --extra-config=apiserver.Authorization.Mode=RBAC -``` - - -如果你使用 `hack/local-up-cluster.sh`,请使用以下值设置 `AUTHORIZATION_MODE` 环境变量: - -``` -AUTHORIZATION_MODE=Node,RBAC hack/local-up-cluster.sh -O -``` - - -默认情况下,`helm init` 将 Tiller Pod 安装到 `kube-system` 命名空间,Tiller 配置为使用 `default` 服务帐户。 - - -{{< note >}} -如果在运行 `helm init` 时使用了 `--tiller-namespace` 或 `--service-account` 参数, -则需要调整以下命令中的 `--serviceaccount` 参数以引用相应的名字空间和服务账号名称。 -{{< /note >}} - - -配置 Tiller 以获得 `cluster-admin` 访问权限: - -```shell -kubectl create clusterrolebinding tiller-cluster-admin \ - --clusterrole=cluster-admin \ - --serviceaccount=kube-system:default -``` - - -## 在 Kubernetes 集群中安装 Service Catalog - -使用以下命令从 Helm 存储库的根目录安装 Service Catalog: - -{{< tabs name="helm-versions" >}} -{{% tab name="Helm version 3" %}} -```shell -helm install catalog svc-cat/catalog --namespace catalog -``` -{{% /tab %}} -{{% tab name="Helm version 2" %}} - -```shell -helm install svc-cat/catalog --name catalog --namespace catalog -``` -{{% /tab %}} -{{< /tabs >}} - -## {{% heading "whatsnext" %}} - - -* 查看[示例服务代理](https://github.com/openservicebrokerapi/servicebroker/blob/mastergettingStarted.md#sample-service-brokers)。 -* 探索 [kubernetes-incubator/service-catalog](https://github.com/kubernetes-incubator/service-catalog) 项目。 diff --git a/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-sc.md b/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-sc.md deleted file mode 100644 index 0a6f2ed817..0000000000 --- a/content/zh-cn/docs/tasks/service-catalog/install-service-catalog-using-sc.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: 使用 SC 安装服务目录 -content_type: task ---- - - - -{{< glossary_definition term_id="service-catalog" length="all" prepend="服务目录(Service Catalog)是" >}} - - -使用 GCP [服务目录安装程序](https://github.com/GoogleCloudPlatform/k8s-service-catalog#installation) -工具可以轻松地在 Kubernetes 集群上安装或卸载服务目录,并将其链接到 Google Cloud 项目。 - -服务目录不仅可以与 Google Cloud 一起使用,还可以与任何类型的托管服务一起使用。 - -## {{% heading "prerequisites" %}} - - -* 了解[服务目录](/zh-cn/docs/concepts/extend-kubernetes/service-catalog/) - 的主要概念。 -* 安装 [Go 1.6+](https://golang.org/dl/) 以及设置 `GOPATH`。 -* 安装生成 SSL 工件所需的 [cfssl](https://github.com/cloudflare/cfssl) 工具。 -* 服务目录需要 Kubernetes 1.7+ 版本。 -* [安装和设置 kubectl](/zh-cn/docs/tasks/tools/), - 以便将其配置为连接到 Kubernetes v1.7+ 集群。 -* 要安装服务目录,kubectl 用户必须绑定到 *cluster-admin* 角色。 - 为了确保这是正确的,请运行以下命令: - - ```shell - kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user= - ``` - - - -## 在本地环境中安装 `sc` {#install-sc-in-your-local-environment} - -安装程序在你的本地计算机上以 CLI 工具的形式运行,名为 `sc`。 - -使用 `go get` 安装: - -```shell -go get github.com/GoogleCloudPlatform/k8s-service-catalog/installer/cmd/sc -``` - - -现在,`sc` 应该已经被安装在 `GOPATH/bin` 目录中了。 - - -## 在 Kubernetes 集群中安装服务目录 {#install-service-catalog-in-your-kubernetes-cluster} - -首先,检查是否已经安装了所有依赖项。运行: - -```shell -sc check -``` - - -如检查通过,应输出: - -``` -Dependency check passed. You are good to go. -``` - - -接下来,运行安装命令并指定要用于备份的 `storageclass`: - -```shell -sc install --etcd-backup-storageclass "standard" -``` - - -## 卸载服务目录 {#uninstall-service-catalog} - -如果你想使用 `sc` 工具从 Kubernetes 集群卸载服务目录,请运行: - -```shell -sc uninstall -``` - -## {{% heading "whatsnext" %}} - - -* 查看[服务代理示例](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md#sample-service-brokers)。 -* 探索 [kubernetes-sigs/service-catalog](https://github.com/kubernetes-sigs/service-catalog) 项目。 - -