Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Primeiros passos/ Criação de uma Implementação (Nginx)
Atualizado em 2023-11-13 GMT+08:00

Criação de uma Implementação (Nginx)

Você pode usar imagens para criar rapidamente uma carga de trabalho de um único pod que pode ser acessada a partir de redes públicas. Esta seção descreve como usar o CCE para implantar rapidamente uma aplicação de Nginx e gerenciar seu ciclo de vida.

Pré-requisitos

Você criou um cluster do CCE que contém um nó com 4 vCPUs e 8 GiB de memória. O nó é vinculado a um EIP.

Um cluster é um grupo lógico de servidores em nuvem que executam cargas de trabalho. Cada servidor de nuvem é um nó no cluster.

Para obter detalhes sobre como criar um cluster, consulte Criação um cluster do Kubernetes.

Visão geral do Nginx

Nginx é um servidor Web leve. No CCE, você pode configurar rapidamente um servidor Web Nginx.

Esta seção usa a aplicação de Nginx como um exemplo para descrever como criar uma carga de trabalho. A criação leva cerca de 5 minutos.

Depois que o Nginx for criado com sucesso, você poderá acessar a página da Web do Nginx.

Figura 1 Página da Web do Nginx

Criar Nginx no console

A seguir está o procedimento para criar uma carga de trabalho em contêiner a partir de uma imagem de contêiner.

  1. Efetue logon no console do CCE.
  2. Escolha o cluster de destino.
  3. No painel de navegação, escolha Workloads. Em seguida, clique em Create Workload.
  4. Configure os seguintes parâmetros e mantenha o valor padrão para outros parâmetros:

    Basic Info

    • Workload Type: selecione Deployment.
    • Workload Name: defina-o para nginx.
    • Namespace: selecione default.
    • Pods: defina a quantidade de pods para 1.

    Container Settings

    Na área Basic Info de Container Information, clique em Select Image. Na caixa de diálogo exibida, selecione Open Source Images, pesquise por nginx e selecione a imagem nginx.

    Figura 2 Selecionar a imagem de nginx

    Service Settings

    Clique no sinal de mais (+) para criar um serviço para acessar a carga de trabalho de uma rede externa. Neste exemplo, crie um Serviço LoadBalancer. Configure os seguintes parâmetros:

    • Service Name: nome do Serviço exposto a redes externas. Neste exemplo, o nome do Serviço é nginx.
    • Access Type: selecione LoadBalancer.
    • Service Affinity: mantenha o valor padrão.
    • Load Balancer: se um balanceador de carga estiver disponível, selecione um balanceador de carga existente. Caso contrário, selecione Auto create para criar um.
    • Port:
      • Protocol: selecione TCP.
      • Service Port: defina esse parâmetro como 8080, que é mapeado para a porta do contêiner.
      • Container Port: porta na qual a aplicação escuta. Para contêineres criados usando a imagem de nginx, defina esse parâmetro como 80. Para outras aplicações, defina este parâmetro para a porta da aplicação.
    Figura 3 Criar um Serviço

  5. Clique em Create Workload.

    Aguarde até que a carga de trabalho seja criada.

    A Implementação criada será exibida na guia Deployments.

    Figura 4 Carga de trabalho criada com sucesso

Acessar o Nginx

  1. Obtenha o endereço de acesso externo do Nginx.

    Clique na carga de trabalho do Nginx para entrar na página de detalhes. Na guia Access Mode, veja o endereço IP do Nginx. O endereço IP público é o endereço de acesso externo.
    Figura 5 Obtenção do endereço de acesso externo

  2. Digite o endereço de acesso externo na caixa de endereço de um navegador. O seguinte mostra a página de boas-vindas se você acessar com êxito a carga de trabalho.

    Figura 6 Acessar o Nginx

Criar o Nginx usando o kubectl

Esta seção descreve como usar o kubectl para criar uma Implementação e expor a Implementação na Internet por meio de um Serviço LoadBalancer.

  1. Use o kubectl para se conectar ao cluster. Para obter detalhes, consulte Conexão a um cluster usando o kubectl.
  2. Crie um arquivo de descrição chamado nginx-deployment.yaml. nginx-deployment.yaml é um nome de arquivo de exemplo. Você pode renomeá-lo conforme necessário.

    vi nginx-deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx:alpine
            name: nginx
          imagePullSecrets:
          - name: default-secret

  3. Crie uma Implantação.

    kubectl create -f nginx-deployment.yaml

    Se as seguintes informações forem exibidas, a Implementação está sendo criada.

    deployment "nginx" created

    Verifique a Implementação.

    kubectl get deployment

    Se as informações a seguir forem exibidas, a Implementação está sendo executada.

    NAME           READY     UP-TO-DATE   AVAILABLE   AGE 
    nginx          1/1       1            1           4m5s

    Descrição do parâmetro

    • NAME: especifica o nome de uma carga de trabalho.
    • READY: indica o número de pods disponíveis/pods esperados para a carga de trabalho.
    • UP-TO-DATE: indica o número de réplicas que foram atualizadas.
    • AVAILABLE: indica o número de pods disponíveis.
    • AGE: indica o período de execução da Implementação.

  4. Crie um arquivo de descrição chamado nginx-elb-svc.yaml. Altere o valor do selector para matchLabels (app: nginx neste exemplo) no arquivo nginx-deployment.yaml para associar o Serviço à aplicação de back-end.

    Para obter detalhes sobre os parâmetros no exemplo a seguir, consulte Uso do kubectl para criar um Serviço(Criação automática de um balanceador de carga).
    apiVersion: v1 
    kind: Service 
    metadata: 
      annotations:   
        kubernetes.io/elb.class: union
        kubernetes.io/elb.autocreate: 
            '{
                "type": "public",
                "bandwidth_name": "cce-bandwidth",
                "bandwidth_chargemode": "bandwidth",
                "bandwidth_size": 5,
                "bandwidth_sharetype": "PER",
                "eip_type": "5_bgp"
            }'
      labels:
        app: nginx
      name: nginx 
    spec: 
      ports: 
      - name: service0 
        port: 80
        protocol: TCP 
        targetPort: 80
      selector: 
        app: nginx 
      type: LoadBalancer

  5. Crie um Serviço.

    kubectl create -f nginx-elb-svc.yaml

    Se informações semelhantes às seguintes forem exibidas, o Serviço foi criado.

    service/nginx created

    kubectl get svc

    Se informações semelhantes às seguintes forem exibidas, o tipo de acesso foi configurado e a carga de trabalho está acessível.

    NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
    kubernetes   ClusterIP      10.247.0.1       <none>        443/TCP        3d
    nginx        LoadBalancer   10.247.130.196   10.78.42.242   80:31540/TCP   51s

  6. Digite o URL (por exemplo, 10.78.42.242:80) na caixa de endereço de um navegador. 10.78.42.242 indica o endereço IP do balanceador de carga e 80 indica a porta de acesso exibida no console do CCE.

    Nginx é acessível.

    Figura 7 Acessar o Nginx através do Serviço LoadBalancer