Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Adicione Implantações e Serviços com o Sidecar Istio

Rancher-Istio foi descontinuado desde o Rancher v2.12.0; recorra à SUSE Application Collection versão do Istio para segurança aprimorada (incluída nas assinaturas do SUSE Rancher Prime). Informações detalhadas podem ser encontradas em este anúncio.

Pré-requisitos:

Para habilitar o Istio para uma carga de trabalho, o cluster e o namespace devem ter o aplicativo Istio instalado.

Habilitar o Istio em um namespace apenas ativa a injeção automática do sidecar para novas cargas de trabalho. Para habilitar o sidecar Envoy para cargas de trabalho existentes, você precisa habilitá-lo manualmente para cada carga de trabalho.

Para injetar o sidecar Istio em uma carga de trabalho existente no namespace,

  1. No canto superior esquerdo, clique em ☰ > Gerenciamento de Cluster.

  2. Na página Clusters, vá para o cluster onde você deseja ver as visualizações e clique em Explorar.

  3. Clique em Carga de Trabalho.

  4. Vá para a carga de trabalho onde você deseja injetar o sidecar Istio e clique em ⋮ > Reimplantar. Quando a carga de trabalho for reimplantada, ela terá o sidecar Envoy injetado automaticamente.

Aguarde alguns minutos para que a carga de trabalho seja atualizada e tenha o sidecar Istio. Clique nele e vá para a seção de Contêineres. Você deve conseguir ver istio-proxy ao lado da sua carga de trabalho original. Isso significa que o sidecar Istio está habilitado para a carga de trabalho. O Istio está fazendo toda a conexão para o sidecar Envoy. Agora o Istio pode realizar todas as funcionalidades automaticamente se você as habilitar no yaml.

Adicione Implantações e Serviços

Existem algumas maneiras de adicionar novas Implantações no seu namespace:

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster que você criou e clique em Explorar.

  3. Clique em Carga de Trabalho.

  4. Clique em Criar.

  5. Clique em Implantação.

  6. Preencha o formulário ou Edite como Yaml.

  7. Clique em Criar.

Para adicionar um Serviço ao seu namespace:

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster que você criou e clique em Explorar.

  3. Clique em menu:Descoberta de Serviços[Serviços].

  4. Clique em Criar.

  5. Selecione o tipo de serviço que você deseja.

  6. Preencha o formulário ou Edite como Yaml.

  7. Clique em Criar

Você também pode criar implantações e serviços usando o kubectl shell

  1. Execute kubectl create -f <name of service/deployment file>.yaml se seu arquivo estiver armazenado localmente no cluster

  2. Ou execute `cat<< EOF | kubectl apply -f -`, cole o conteúdo do arquivo no terminal e, em seguida, execute EOF para completar o comando.

Exemplos de Implantações e Serviços

Em seguida, adicionamos os recursos do Kubernetes para as implantações e serviços de exemplo para o aplicativo BookInfo na documentação do Istio.

  1. Clique em ☰ > Gerenciamento de Cluster.

  2. Vá para o cluster que você criou e clique em Explorar.

  3. Na barra de navegação superior, abra o shell do kubectl.

  4. Execute cat<< EOF | kubectl apply -f -

  5. Copie os recursos abaixo para o shell.

  6. Execute EOF

Isso configurará os seguintes recursos de exemplo do aplicativo BookInfo do Istio:

Serviço e implantação de detalhes:

  • Um details Serviço

  • Uma ServiceAccount para bookinfo-details

  • Uma details-v1 Implantação

Serviço e implantação de avaliações:

  • Um ratings Serviço

  • Uma ServiceAccount para bookinfo-ratings

  • Uma ratings-v1 Implantação

Serviço e implantações de revisões (três versões):

  • Um reviews Serviço

  • Uma ServiceAccount para bookinfo-reviews

  • Uma reviews-v1 Implantação

  • Uma reviews-v2 Implantação

  • Uma reviews-v3 Implantação

Serviço e implantação da página do produto:

Esta é a página principal do aplicativo, que será visível a partir de um navegador da web. Os outros serviços serão chamados a partir desta página.

  • Um productpage Serviço

  • Uma ServiceAccount para bookinfo-productpage

  • Uma productpage-v1 Implantação

YAML de Recursos

# 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
---