Correct the pod and svc spec requirements (#1971)

* Correct the pod and svc spec requirements

* Fix links

* Fix links

* Address code review comments

* Code review comments

* Consistent naming

* Keep the broken order
This commit is contained in:
Andra Cismaru 2018-07-27 17:19:40 -07:00 committed by istio-bot
parent 1d95ab7481
commit bf4b81f398
10 changed files with 48 additions and 40 deletions

View File

@ -110,8 +110,8 @@ This solution uses Istio proxy for TCP bypassing. The traffic is secured through
name: tcp
{{< /text >}}
1. Update the mesh service deployment. See further readings on port naming rules
[here](/docs/setup/kubernetes/sidecar-injection/#pod-spec-requirements).
1. Update the mesh service deployment. See further readings on port naming rules in
[Requirements for Pods and Services](/docs/setup/kubernetes/spec-requirements).
1. You can verify access to the Endpoints service through secure Ingress:

View File

@ -1,7 +1,7 @@
---
title: Download the Istio release
title: Downloading the Release
description: Instructions to download the Istio release.
weight: 90
weight: 2
keywords: [kubernetes]
---

View File

@ -26,6 +26,8 @@ plane and the sidecars for the Istio data plane.
* [Amazon Web Services (AWS) with Kops](/docs/setup/kubernetes/platform-setup/aws/)
* [Azure](/docs/setup/kubernetes/platform-setup/azure/)
1. Check the [Requirements for Pods and Services](/docs/setup/kubernetes/spec-requirements/) on Pods and Services.
1. [Install the Helm client](https://docs.helm.sh/using_helm/#installing-helm).
1. Istio by default uses LoadBalancer service object types. Some platforms do not support LoadBalancer

View File

@ -1,7 +1,7 @@
---
title: Platform Setup
description: How to prepare various Kubernetes platforms before installing Istio.
weight: 1
weight: 100
keywords: [platform-setup]
type: section-index
---

View File

@ -19,6 +19,8 @@ To install and configure Istio in a Kubernetes cluster, follow these instruction
* [Amazon Web Services (AWS) with Kops](/docs/setup/kubernetes/platform-setup/aws/)
* [Azure](/docs/setup/kubernetes/platform-setup/azure/)
1. Check the [Requirements for Pods and Services](/docs/setup/kubernetes/spec-requirements/).
## Installation steps
To install Istio's core components you can choose one of the following four

View File

@ -1,5 +1,5 @@
---
title: Installing the Istio sidecar
title: Installing the sidecar
description: Instructions for installing the Istio sidecar in application pods automatically using the sidecar injector webhook or manually using istioctl CLI.
weight: 30
keywords: [kubernetes,sidecar,sidecar-injection]
@ -7,39 +7,14 @@ aliases:
- /docs/setup/kubernetes/automatic-sidecar-inject.html
---
## Pod spec requirements
In order to be a part of the service mesh, each pod in the Kubernetes
cluster must satisfy the following requirements:
1. _**Service association**:_ The pod must belong to a _single_
[Kubernetes Service](https://kubernetes.io/docs/concepts/services-networking/service/)
(pods that belong to multiple services are not supported as of now).
1. _**Named ports**:_ Service ports must be named. The port names must be of
the form `<protocol>[-<suffix>]` with _http_, _http2_, _grpc_, _mongo_, or _redis_
as the `<protocol>` in order to take advantage of Istio's routing features.
For example, `name: http2-foo` or `name: http` are valid port names, but
`name: http2foo` is not. If the port name does not begin with a recognized
prefix or if the port is unnamed, traffic on the port will be treated as
plain TCP traffic (unless the port explicitly uses `Protocol: UDP` to
signify a UDP port).
1. _**Deployments with app label**:_ It is recommended that Pods deployed using
the Kubernetes `Deployment` have an explicit `app` label in the
Deployment specification. Each deployment specification should have a
distinct `app` label with a value indicating something meaningful. The
`app` label is used to add contextual information in distributed
tracing.
1. _**Sidecar in every pod in mesh**:_ Finally, each pod in the mesh must be
running an Istio compatible sidecar. The following sections describe two
ways of injecting the Istio sidecar into a pod: manually using `istioctl`
CLI tool or automatically using the Istio sidecar injector. Note that the
sidecar is not involved in traffic between containers in the same pod.
## Injection
Each pod in the mesh must be running an Istio compatible sidecar.
The following sections describe two
ways of injecting the Istio sidecar into a pod: manually using the `istioctl`
CLI tool or automatically using the Istio sidecar injector.
Manual injection modifies the controller configuration, e.g. deployment. It
does this by modifying the pod template spec such that *all* pods for that
deployment are created with the injected sidecar. Adding/Updating/Removing

View File

@ -0,0 +1,29 @@
---
title: Requirements for Pods and Services
description: Describes the requirements for Kubernetes pods and services to run Istio.
weight: 80
keywords: [kubernetes,sidecar,sidecar-injection]
---
To be a part of the service mesh, pods and services in a Kubernetes
cluster must satisfy the following requirements:
* _**Named ports**:_ Service ports must be named. The port names must be of
the form `<protocol>[-<suffix>]` with _http_, _http2_, _grpc_, _mongo_, or _redis_
as the `<protocol>` in order to take advantage of Istio's routing features.
For example, `name: http2-foo` or `name: http` are valid port names, but
`name: http2foo` is not. If the port name does not begin with a recognized
prefix or if the port is unnamed, traffic on the port will be treated as
plain TCP traffic (unless the port [explicitly](https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service)
uses `Protocol: UDP` to signify a UDP port).
* _**Service association**:_ If a pod belongs to multiple
[Kubernetes services](https://kubernetes.io/docs/concepts/services-networking/service/),
the services cannot use the same port number for different protocols, for instance HTTP and TCP.
* _**Deployments with app label**:_ It is recommended that pods deployed using
the Kubernetes `Deployment` have an explicit `app` label in the
deployment specification. Each deployment specification should have a
distinct `app` label with a value indicating something meaningful. The
`app` label is used to add contextual information in distributed
tracing.

View File

@ -199,7 +199,7 @@ to the request by the productpage service.
Note that Kubernetes services, like the Bookinfo ones used in this task, must
adhere to certain restrictions to take advantage of Istio's L7 routing features.
Refer to the [sidecar injection documentation](/docs/setup/kubernetes/sidecar-injection/#pod-spec-requirements) for details.
Refer to the [Requirements for Pods and Services](/docs/setup/kubernetes/spec-requirements) for details.
In the [traffic shifting](/docs/tasks/traffic-management/traffic-shifting) task, you
will follow the same basic pattern you learned here to configure route rules to

View File

@ -150,7 +150,7 @@ your Kubernetes services need to be changed slightly.
Kubernetes services must adhere to certain restrictions in order to take advantage of
Istio's L7 routing features.
Refer to the [sidecar injection documentation](/docs/setup/kubernetes/sidecar-injection/#pod-spec-requirements)
Refer to the [Requirements for Pods and Services](/docs/setup/kubernetes/spec-requirements)
for details.
## Verifying connectivity to Istio Pilot

View File

@ -161,7 +161,7 @@ keywords: [traffic-management,routing]
在此任务中,您首先使用 Istio 将 100% 的请求流量都路由到了 BookInfo 服务的 v1 版本。 然后再设置了一条路由规则,该路由规则在 productpage 服务中添加基于请求的 "end-user" 自定义 header 选择性地将特定的流量路由到了 reviews 服务的 v2 版本。
请注意,为了利用 Istio 的 L7 路由功能Kubernetes 中的服务(如本任务中使用的 Bookinfo 服务)必须遵守某些特定限制。
参考 [sidecar 注入文档](/docs/setup/kubernetes/sidecar-injection/#pod-spec-requirements)了解详情。
参考 [sidecar 注入文档](/docs/setup/kubernetes/spec-requirements)了解详情。
在[流量转移](/docs/tasks/traffic-management/traffic-shifting)任务中,您将按照在此处学习的相同基本模式来配置路由规则,以逐步将流量从服务的一个版本发送到另一个版本。