この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Istioサイドカーを使用してデプロイメントとサービスを追加します。

Rancher-IstioはRancher v2.12.0以降廃止されました。セキュリティを強化するために、 SUSE Application CollectionのIstioビルドに切り替えてください(SUSE Rancher Primeサブスクリプションに含まれています)。 詳細情報は この発表にあります。

前提条件:

ワークロードにIstioを有効にするには、クラスターとネームスペースにIstioアプリがインストールされている必要があります。

ネームスペースでIstioを有効にすると、新しいワークロードに対して自動サイドカー注入が有効になります。既存のワークロードにEnvoyサイドカーを有効にするには、各ワークロードに対して手動で有効にする必要があります。

ネームスペース内の既存のワークロードにIstioサイドカーを注入するには、

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. *Clusters*ページで、視覚化を表示したいクラスターに移動し、*Explore*をクリックします。

  3. *ワークロード*をクリックします。

  4. Istioサイドカーを注入したいワークロードに移動し、*⋮ > 再デプロイ*をクリックします。ワークロードが再デプロイされると、Envoyサイドカーが自動的に注入されます。

ワークロードがIstioサイドカーを持つようにアップグレードされるまで数分待ちます。それをクリックして、コンテナセクションに移動します。元のワークロードと一緒に`istio-proxy`が表示されるはずです。これは、ワークロードに対してIstioサイドカーが有効であることを意味します。IstioはサイドカーであるEnvoyの設定をすべて行っています。今、Istioはyamlで有効にした場合、すべての機能を自動的に実行できます。

デプロイメントとサービスを追加します。

ネームスペースに新しい*デプロイメント*を追加する方法はいくつかあります:

  1. *☰ > クラスター管理*をクリックします。

  2. 作成したクラスターに移動し、*探索*をクリックします。

  3. *ワークロード*をクリックします。

  4. 作成]をクリックします。

  5. Deployment]をクリックします。

  6. フォームに記入するか、*Yamlとして編集*します。

  7. 作成]をクリックします。

ネームスペースに*サービス*を追加するには:

  1. *☰ > クラスター管理*をクリックします。

  2. 作成したクラスターに移動し、*探索*をクリックします。

  3. menu:サービスディスカバリー[サービス]をクリックします。

  4. 作成]をクリックします。

  5. 希望するサービスのタイプを選択します。

  6. フォームに記入するか、*Yamlとして編集*します。

  7. 作成 をクリックします。

kubectl *シェル*を使用してデプロイメントとサービスを作成することもできます。

  1. ファイルがクラスター内にローカルに保存されている場合は、`kubectl create -f <name of service/deployment file>.yaml`を実行します。

  2. または `cat<< EOF | kubectl apply -f -` を実行し、ファイルの内容をターミナルに貼り付けてから、EOF を実行してコマンドを完了します。

デプロイメントとサービスの例

次に、Istio のドキュメントにある BookInfo アプリのサンプルデプロイメントとサービスのための Kubernetes リソースを追加します。

  1. *☰ > クラスター管理*をクリックします。

  2. 作成したクラスターに移動し、*探索*をクリックします。

  3. 上部のナビゲーションバーで、kubectl シェルを開きます。

  4. `cat<< EOF | kubectl apply -f -`を実行します。

  5. 以下のリソースをシェルにコピーします。

  6. `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
---