|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
Istioサイドカーを使用してデプロイメントとサービスを追加します。
|
Rancher-IstioはRancher v2.12.0以降廃止されました。セキュリティを強化するために、 SUSE Application CollectionのIstioビルドに切り替えてください(SUSE Rancher Primeサブスクリプションに含まれています)。 詳細情報は この発表にあります。 |
|
前提条件:
ワークロードにIstioを有効にするには、クラスターとネームスペースにIstioアプリがインストールされている必要があります。 |
ネームスペースでIstioを有効にすると、新しいワークロードに対して自動サイドカー注入が有効になります。既存のワークロードにEnvoyサイドカーを有効にするには、各ワークロードに対して手動で有効にする必要があります。
ネームスペース内の既存のワークロードにIstioサイドカーを注入するには、
-
左上隅で、*☰ > クラスター管理*をクリックします。
-
*Clusters*ページで、視覚化を表示したいクラスターに移動し、*Explore*をクリックします。
-
*ワークロード*をクリックします。
-
Istioサイドカーを注入したいワークロードに移動し、*⋮ > 再デプロイ*をクリックします。ワークロードが再デプロイされると、Envoyサイドカーが自動的に注入されます。
ワークロードがIstioサイドカーを持つようにアップグレードされるまで数分待ちます。それをクリックして、コンテナセクションに移動します。元のワークロードと一緒に`istio-proxy`が表示されるはずです。これは、ワークロードに対してIstioサイドカーが有効であることを意味します。IstioはサイドカーであるEnvoyの設定をすべて行っています。今、Istioはyamlで有効にした場合、すべての機能を自動的に実行できます。
デプロイメントとサービスを追加します。
ネームスペースに新しい*デプロイメント*を追加する方法はいくつかあります:
-
*☰ > クラスター管理*をクリックします。
-
作成したクラスターに移動し、*探索*をクリックします。
-
*ワークロード*をクリックします。
-
[作成]をクリックします。
-
[Deployment]をクリックします。
-
フォームに記入するか、*Yamlとして編集*します。
-
[作成]をクリックします。
ネームスペースに*サービス*を追加するには:
-
*☰ > クラスター管理*をクリックします。
-
作成したクラスターに移動し、*探索*をクリックします。
-
menu:サービスディスカバリー[サービス]をクリックします。
-
[作成]をクリックします。
-
希望するサービスのタイプを選択します。
-
フォームに記入するか、*Yamlとして編集*します。
-
作成 をクリックします。
kubectl *シェル*を使用してデプロイメントとサービスを作成することもできます。
-
ファイルがクラスター内にローカルに保存されている場合は、`kubectl create -f <name of service/deployment file>.yaml`を実行します。
-
または `cat<< EOF | kubectl apply -f -` を実行し、ファイルの内容をターミナルに貼り付けてから、
EOFを実行してコマンドを完了します。
デプロイメントとサービスの例
次に、Istio のドキュメントにある BookInfo アプリのサンプルデプロイメントとサービスのための Kubernetes リソースを追加します。
-
*☰ > クラスター管理*をクリックします。
-
作成したクラスターに移動し、*探索*をクリックします。
-
上部のナビゲーションバーで、kubectl シェルを開きます。
-
`cat<< EOF | kubectl apply -f -`を実行します。
-
以下のリソースをシェルにコピーします。
-
`EOF`を実行します。
これにより、Istio の例である BookInfo アプリから以下のサンプルリソースが設定されます:
詳細サービスとデプロイメント:
-
detailsサービス -
bookinfo-details用の ServiceAccount -
details-v1デプロイメント
評価サービスとデプロイメント:
-
ratingsサービス -
bookinfo-ratings用の ServiceAccount -
ratings-v1デプロイメント
レビューサービスとデプロイメント(3つのバージョン):
-
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
---