title: 使用Istio Sidecar添加部署和服务 description: 在命名空间中启用 Istio 后只会对新增的工作负载自动注入 sidecar。如果要为已有的工作负载启用 sidecar,需要重新部署该工作负载。 keywords:
- rancher
- rancher中文
- rancher中文文档
- rancher官网
- rancher文档
- Rancher
- rancher 中文
- rancher 中文文档
- rancher cn
- Istio
- 使用Istio Sidecar添加部署和服务
前提条件
已在集群层级和命名空间层级安装 Istio。
为已有的工作负载配置 Istio sidecar
在命名空间中启用 Istio 后只会对新增的工作负载自动注入 sidecar。如果要为已有的工作负载启用 sidecar,需要重新部署该工作负载。
从 Cluster Explorer 进入工作负载,单击 ⋮, 并单击 Redeploy,重新部署工作负载
在重新部署工作负载的过程中,它将自动注入 sidecar。
等待几分钟后,工作负载将升级为拥有 istio sidecar。单击它并进入
container部分。你应该可以看到istio-proxy和你原来的工作负载一起。
结果:已为现有的工作负载启用的 Istio sidecar。
添加部署和服务
有几种方法可以在你的命名空间中添加新的部署。
- 从集群资源管理器中单击 “工作负载 > 概述”。
- 单击创建
- 从各种工作负载选项中选择部署。
- 填写表格,或编辑为 Yaml。
- 单击创建
或者,您可以进入 “workload > specific workload” ,选择您要部署的特定工作负载,并从那里创建。
在您的命名空间中添加一个服务。
- 从集群资源管理器单击服务发现>服务。
- 单击创建
- 从各种选项中选择要创建的服务类型。
- 填写表格,或编辑为 Yaml。
- 单击创建
您也可以使用 kubectl shell创建部署和服务。
- 如果您的文件存储在集群的本地,请运行
kubectl create -f <服务/部署文件的名称>.yaml。 - 或者运行
cat<< EOF | kubectl apply -f -,将文件内容粘贴到终端,然后运行EOF完成命令。
部署和服务示例
接下来我们在 Istio 的文档中为 BookInfo 应用的示例部署和服务添加 Kubernetes 资源。
- 从集群资源管理器,打开 kubectl shell。
- 运行
cat<< EOF | kubectl apply -f -。 - 将以下资源复制到 shell 中
- 运行
EOF。
这将设置 Istio 的示例 BookInfo 应用程序中的以下示例资源。
details服务和部署:
detailsServicebookinfo-details的 ServiceAccount。details-v1部署。
评级服务和部署:
- 一个
ratingsService bookinfo-ratings的 ServiceAccount。- 一个
ratings-v1部署
审查服务和部署(三个版本):
reviewsService- 一个
bookinfo-reviews的 ServiceAccount。 - 一个
reviews-v1部署 - 一个
reviews-v2部署 - 一个
reviews-v3部署
产品页面服务和部署:
这是应用程序的主页面,它将从 Web 浏览器中可见。其他服务将从这个页面调用。
- 一个
productpage服务 - 一个
bookinfo-productpage的 ServiceAccount - 一个
productpage-v1Deployment
资源 YAML
# Copyright 2017 Istio Authors## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.################################################################################################### Details service##################################################################################################apiVersion: v1kind: Servicemetadata:name: detailslabels:app: detailsservice: detailsspec:ports:- port: 9080name: httpselector:app: details---apiVersion: v1kind: ServiceAccountmetadata:name: bookinfo-details---apiVersion: apps/v1kind: Deploymentmetadata:name: details-v1labels:app: detailsversion: v1spec:replicas: 1selector:matchLabels:app: detailsversion: v1template:metadata:labels:app: detailsversion: v1spec:serviceAccountName: bookinfo-detailscontainers:- name: detailsimage: docker.io/istio/examples-bookinfo-details-v1:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---################################################################################################### Ratings service##################################################################################################apiVersion: v1kind: Servicemetadata:name: ratingslabels:app: ratingsservice: ratingsspec:ports:- port: 9080name: httpselector:app: ratings---apiVersion: v1kind: ServiceAccountmetadata:name: bookinfo-ratings---apiVersion: apps/v1kind: Deploymentmetadata:name: ratings-v1labels:app: ratingsversion: v1spec:replicas: 1selector:matchLabels:app: ratingsversion: v1template:metadata:labels:app: ratingsversion: v1spec:serviceAccountName: bookinfo-ratingscontainers:- name: ratingsimage: docker.io/istio/examples-bookinfo-ratings-v1:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---################################################################################################### Reviews service##################################################################################################apiVersion: v1kind: Servicemetadata:name: reviewslabels:app: reviewsservice: reviewsspec:ports:- port: 9080name: httpselector:app: reviews---apiVersion: v1kind: ServiceAccountmetadata:name: bookinfo-reviews---apiVersion: apps/v1kind: Deploymentmetadata:name: reviews-v1labels:app: reviewsversion: v1spec:replicas: 1selector:matchLabels:app: reviewsversion: v1template:metadata:labels:app: reviewsversion: v1spec:serviceAccountName: bookinfo-reviewscontainers:- name: reviewsimage: docker.io/istio/examples-bookinfo-reviews-v1:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---apiVersion: apps/v1kind: Deploymentmetadata:name: reviews-v2labels:app: reviewsversion: v2spec:replicas: 1selector:matchLabels:app: reviewsversion: v2template:metadata:labels:app: reviewsversion: v2spec:serviceAccountName: bookinfo-reviewscontainers:- name: reviewsimage: docker.io/istio/examples-bookinfo-reviews-v2:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---apiVersion: apps/v1kind: Deploymentmetadata:name: reviews-v3labels:app: reviewsversion: v3spec:replicas: 1selector:matchLabels:app: reviewsversion: v3template:metadata:labels:app: reviewsversion: v3spec:serviceAccountName: bookinfo-reviewscontainers:- name: reviewsimage: docker.io/istio/examples-bookinfo-reviews-v3:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---################################################################################################### Productpage services##################################################################################################apiVersion: v1kind: Servicemetadata:name: productpagelabels:app: productpageservice: productpagespec:ports:- port: 9080name: httpselector:app: productpage---apiVersion: v1kind: ServiceAccountmetadata:name: bookinfo-productpage---apiVersion: apps/v1kind: Deploymentmetadata:name: productpage-v1labels:app: productpageversion: v1spec:replicas: 1selector:matchLabels:app: productpageversion: v1template:metadata:labels:app: productpageversion: v1spec:serviceAccountName: bookinfo-productpagecontainers:- name: productpageimage: docker.io/istio/examples-bookinfo-productpage-v1:1.15.0imagePullPolicy: IfNotPresentports:- containerPort: 9080---
