Como ponto de entrada de tráfego, o gateway MSE oferece a visão mais precisa do volume de tráfego da sua aplicação. Utilize as métricas de consultas por segundo (QPS) do gateway para ativar o dimensionamento automático das aplicações no Container Service for Kubernetes (ACK). Isso permite que seus serviços de backend escalem sob demanda. Este tópico mostra como configurar o dimensionamento automático para aplicações no ACK usando logs de acesso do gateway.
Pré-requisitos
Procedimento
-
Implante os seguintes recursos no seu cluster do ACK.
Faça login no console do ACK. No painel de navegação à esquerda, clique em .
-
Pesquise por ack-alibaba-cloud-metrics-adapter e clique no cartão da aplicação correspondente. Na página de detalhes, clique em Deploy. No painel Deploy, configure os parâmetros e clique em OK.
Defina os seguintes parâmetros: selecione o cluster de destino, defina o namespace como
kube-systeme o release name comoack-alibaba-cloud-metrics-adapter. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na página Deployments, clique em Create Resources in YAML. Selecione Custom na lista de modelos, cole o YAML abaixo e clique em Create.
apiVersion: apps/v1 kind: Deployment metadata: name: httpbin-deploy labels: app: httpbin-deploy spec: replicas: 1 selector: matchLabels: app: httpbin template: metadata: labels: app: httpbin spec: containers: - image: kennethreitz/httpbin imagePullPolicy: IfNotPresent name: httpbin ports: - name: http containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: httpbin-svc namespace: default labels: app: httpbin-svc spec: ports: - port: 8080 name: http protocol: TCP targetPort: 80 selector: app: httpbin type: ClusterIP
-
No gateway MSE, adicione uma origem de serviço e crie um serviço.
Faça login no console do MSE. Na barra de navegação superior, selecione uma região.
No painel de navegação à esquerda, escolha Cloud-native Gateway > Gateways. Na página Gateways, clique no ID do gateway.
No painel de navegação à esquerda, clique em Routes. Em seguida, clique na aba Source.
Clique em Add Source. Para Source Type, selecione Container Service, escolha o cluster do ACK onde sua aplicação está implantada e clique em OK.
No painel de navegação à esquerda, clique em Routes. Depois, clique na aba Services.
Clique em Add Service para adicionar a origem de serviço aos Services e clique em OK.
Crie uma regra de roteamento para o serviço adicionado. Para mais informações, consulte Criar uma regra de roteamento.
-
Ative o envio de logs.
No painel de navegação à esquerda, clique em Parameter Settings.
-
Na seção Observability Parameters, clique no ícone de configurações
ao lado de Log Shipping. Na caixa de diálogo exibida, ative o envio de logs e a opção Compatible with NGINX Ingress.Mantenha Simple Log Service (SLS) Project definido como Use Default e clique em OK.
-
No seu cluster do ACK, crie um HorizontalPodAutoscaler (HPA) e defina suas configurações.
É necessário especificar a aplicação de backend a ser dimensionada, as contagens mínima e máxima de réplicas e as métricas de dimensionamento. A configuração de exemplo abaixo escala horizontalmente a aplicação quando o QPS médio por pod ultrapassa 10. Neste exemplo,
sls.projecté o nome do projeto de envio de logs, encontrado na página Parameter Settings no console do gateway. O camposls.ingress.routesegue o formato<namespace>-<service-name>-<service-port>.apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: higress-hpa spec: scaleTargetRef: apiVersion: apps/v1beta2 kind: Deployment name: httpbin-deploy minReplicas: 1 maxReplicas: 10 metrics: - type: External external: metric: name: sls_ingress_qps selector: matchLabels: sls.project: "aliyun-product-data-xxxxxxxxxxxxx-cn-hangzhou" sls.logstore: "nginx-ingress" sls.ingress.route: "default-httpbin-svc-8080" target: type: AverageValue averageValue: 10 -
Execute um teste de carga na aplicação roteando tráfego com QPS controlado pelo gateway. Em seguida, observe os eventos do HPA para verificar o comportamento de dimensionamento.
Execute o seguinte comando:
kubectl describe hpa higress-hpaA saída será semelhante a esta:
Normal SuccessfulRescale 9m horizontal-pod-autoscaler New size: 3; reason: external metric sls_ingress_qps(&LabelSelector{MatchLabels:map[string]string{sls.ingress.route: default-httpbin-svc-8080,sls.logstore: nginx-ingress,sls.project: aliyun-product-data-xxxxxxxxxxxxxxxx-cn-hangzhou,},MatchExpressions:[]LabelSelectorRequirement{},}) above target Normal SuccessfulRescale 8m45s horizontal-pod-autoscaler New size: 4; reason: external metric sls_ingress_qps(&LabelSelector{MatchLabels:map[string]string{sls.ingress.route: default-httpbin-svc-8080,sls.logstore: nginx-ingress,sls.project: aliyun-product-data-xxxxxxxxxxxxxxxx-cn-hangzhou,},MatchExpressions:[]LabelSelectorRequirement{},}) above target Normal SuccessfulRescale 5m12s horizontal-pod-autoscaler New size: 4; reason: Normal SuccessfulRescale 3m41s horizontal-pod-autoscaler New size: 3; reason: All metrics below target Normal SuccessfulRescale 2m55s horizontal-pod-autoscaler New size: 1; reason: All metrics below target
Instruções
Leia o texto em inglês para entender O QUE precisa ser comunicado
Escreva o português brasileiro DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Tags xref (
<a data-tag="xref" ...>texto</a>) — preserve a TAG INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > eAplique todas as regras específicas do idioma rigorosamente
Aplique as regras de stopwords com tolerância zero
Use o modo imperativo em passos numerados e listas de procedimentos
Garanta consistência terminológica — mesmo termo = mesma tradução em todo o documento
Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido 3+ vezes
Retorne APENAS o documento markdown em português brasileiro, sem explicações