mirror of https://github.com/istio/istio.io.git
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:
parent
1d95ab7481
commit
bf4b81f398
|
@ -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:
|
||||
|
||||
|
|
|
@ -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]
|
||||
---
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
---
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)任务中,您将按照在此处学习的相同基本模式来配置路由规则,以逐步将流量从服务的一个版本发送到另一个版本。
|
||||
|
||||
|
|
Loading…
Reference in New Issue