|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
添加部署与服务并集成 Istio sidecar
|
Rancher-Istio 自 Rancher v2.12.0 起已被弃用;请转向 SUSE 应用程序集合 版本的 Istio,以获得增强的安全性(包含在 SUSE Rancher Prime 订阅中)。 详细信息可以在 此公告 中找到。 |
|
前提条件:
要为工作负载启用 Istio,集群和命名空间必须安装 Istio 应用。 |
在命名空间中启用 Istio 仅对新工作负载自动注入 sidecar。要为现有工作负载启用 Envoy sidecar,您需要手动为每个工作负载启用它。
要在命名空间中对现有工作负载注入 Istio sidecar,
-
在左上角,点击 ☰ > 集群管理。
-
在*集群*页面上,转到您想查看可视化的集群,然后单击*探索*。
-
单击*工作负载*。
-
转到您想要注入 Istio sidecar 的工作负载,然后点击 ⋮ > 重新部署。当工作负载重新部署时,它将自动注入 Envoy sidecar。
等待几分钟,让工作负载升级后具备 Istio sidecar。点击它并转到容器部分。您应该能够看到 istio-proxy 与您的原始工作负载并排显示。这意味着工作负载已启用 Istio sidecar。Istio 正在处理 Envoy sidecar 的所有连接。现在,如果您在 YAML 中启用它们,Istio 可以自动执行所有功能。
添加部署和服务
在您的命名空间中添加新 部署 有几种方法:
-
单击 ☰ > 集群管理。
-
转到您创建的集群并单击*Explore*.
-
单击*工作负载*。
-
单击*创建*。
-
点击 部署。
-
填写表单,或 以 YAML 编辑。
-
单击*创建*。
要向您的命名空间添加 服务:
-
单击 ☰ > 集群管理。
-
转到您创建的集群并单击*Explore*.
-
点击 menu:服务发现[服务]。
-
单击*创建*。
-
选择您想要的服务类型。
-
填写表单,或 以 YAML 编辑。
-
单击*创建*。
您还可以使用 kubectl 外壳 创建部署和服务。
-
如果您的文件存储在集群中,请运行
kubectl create -f <name of service/deployment file>.yaml -
或者运行 `cat<< EOF | kubectl apply -f -`,将文件内容粘贴到终端中,然后运行
EOF完成命令。
示例部署和服务
接下来,我们为 BookInfo 应用在 Istio 文档中添加示例部署和服务所需的 Kubernetes 资源。
-
单击 ☰ > 集群管理。
-
前往您创建的集群并点击 探索。
-
在顶部导航栏中,打开 kubectl 外壳。
-
运行
cat<< EOF | kubectl apply -f - -
将以下资源复制到外壳中。
-
运行
EOF
这将设置来自 Istio 示例 BookInfo 应用的以下示例资源:
服务和部署的详细信息:
-
一个
details服务 -
一个
bookinfo-details的 ServiceAccount -
一个
details-v1部署
评分服务和部署:
-
一个
ratings服务 -
一个
bookinfo-ratings的 ServiceAccount -
一个
ratings-v1部署
评论服务和部署(三个版本):
-
一个
reviews服务 -
一个
bookinfo-reviews的 ServiceAccount -
一个
reviews-v1部署 -
一个
reviews-v2部署 -
一个
reviews-v3部署
产品页面服务和部署:
这是应用的主页,可以从网页浏览器访问。其他服务将从此页面调用。
-
一个
productpage服务 -
一个
bookinfo-productpage的 ServiceAccount -
一个
productpage-v1部署
资源 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: v1
kind: Service
metadata:
name: details
labels:
app: details
service: details
spec:
ports:
- port: 9080
name: http
selector:
app: details
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-details
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: details-v1
labels:
app: details
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: details
version: v1
template:
metadata:
labels:
app: details
version: v1
spec:
serviceAccountName: bookinfo-details
containers:
- name: details
image: docker.io/istio/examples-bookinfo-details-v1:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---
##################################################################################################
# Ratings service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: ratings
labels:
app: ratings
service: ratings
spec:
ports:
- port: 9080
name: http
selector:
app: ratings
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-ratings
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ratings-v1
labels:
app: ratings
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: ratings
version: v1
template:
metadata:
labels:
app: ratings
version: v1
spec:
serviceAccountName: bookinfo-ratings
containers:
- name: ratings
image: docker.io/istio/examples-bookinfo-ratings-v1:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---
##################################################################################################
# Reviews service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: reviews
labels:
app: reviews
service: reviews
spec:
ports:
- port: 9080
name: http
selector:
app: reviews
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-reviews
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v1
labels:
app: reviews
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v1
template:
metadata:
labels:
app: reviews
version: v1
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v1:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v2
labels:
app: reviews
version: v2
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v2
template:
metadata:
labels:
app: reviews
version: v2
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v2:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: reviews-v3
labels:
app: reviews
version: v3
spec:
replicas: 1
selector:
matchLabels:
app: reviews
version: v3
template:
metadata:
labels:
app: reviews
version: v3
spec:
serviceAccountName: bookinfo-reviews
containers:
- name: reviews
image: docker.io/istio/examples-bookinfo-reviews-v3:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---
##################################################################################################
# Productpage services
##################################################################################################
apiVersion: v1
kind: Service
metadata:
name: productpage
labels:
app: productpage
service: productpage
spec:
ports:
- port: 9080
name: http
selector:
app: productpage
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: bookinfo-productpage
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: productpage-v1
labels:
app: productpage
version: v1
spec:
replicas: 1
selector:
matchLabels:
app: productpage
version: v1
template:
metadata:
labels:
app: productpage
version: v1
spec:
serviceAccountName: bookinfo-productpage
containers:
- name: productpage
image: docker.io/istio/examples-bookinfo-productpage-v1:1.15.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9080
---