O ACK oferece resource profiling para workloads nativos do Kubernetes. Esse recurso analisa dados históricos de uso de recursos para fornecer recomendações de especificação de recursos no nível de contêiner, simplificando a configuração de requests e limits. Este tópico descreve como usar o resource profiling no console e na linha de comando.
Pré-requisitos e notas de uso
-
Este recurso está disponível apenas para ACK Pro cluster s que atendem aos seguintes requisitos:
O componente ack-koordinator (anteriormente ack-slo-manager) v0.7.1 ou posterior deve estar instalado. Para mais informações, consulte ack-koordinator.
O componente metrics-server v0.3.8 ou posterior deve estar instalado.
Se um nó usar containerd como runtime de contêiner e tiver sido adicionado ao cluster antes das 14h00 de 19 de janeiro de 2022, readicione o nó ou atualize o cluster para a versão mais recente. Para mais detalhes, consulte Add an existing node e manually upgrade a cluster.
O recurso de resource profiling está em preview público no Cost Suite e pode ser usado diretamente.
Para garantir resultados precisos, aguarde pelo menos 24 horas após ativar o resource profiling para uma workload. Esse período permite que o sistema colete dados suficientes.
Faturamento
A instalação e o uso do componente ack-koordinator são gratuitos. No entanto, cobranças adicionais podem ocorrer nos cenários abaixo.
O ack-koordinator é um componente autogerenciado. Após a instalação, ele consome recursos dos nós worker. Configure os requests de recursos para cada módulo durante a instalação do componente.
Por padrão, o ack-koordinator expõe métricas de monitoramento para recursos como resource profiling e agendamento refinado no formato Prometheus. Se você ativar a opção Enable Prometheus Monitoring for ACK-Koordinator e usar o Managed Service for Prometheus, essas métricas serão enviadas ao serviço como basic metrics. Alterações nas configurações padrão, como o período de retenção, podem gerar custos extras. Para mais informações, consulte Billing of Managed Service for Prometheus.
Resource profiling
O Kubernetes usa resource requests para descrever as necessidades de recursos dos contêineres. Ao definir um request para um contêiner, o scheduler compara essa solicitação com os recursos alocáveis dos nós para agendar o pod em um nó adequado. Na maioria dos casos, os requests são definidos com base na experiência prática. Os administradores revisam o histórico de utilização, resultados de testes de carga e feedback de produção, ajustando os valores ao longo do tempo.
Contudo, essa abordagem apresenta as seguintes limitações:
Para manter a estabilidade das aplicações em produção, os administradores frequentemente reservam uma grande margem de recursos para lidar com flutuações de tráfego entre dependências upstream e downstream. Consequentemente, os requests de recursos dos contêineres ficam muito acima da utilização real, resultando em baixa utilização dos recursos do cluster e desperdício significativo.
Quando a alocação do cluster está elevada, os administradores podem reduzir os requests para melhorar a utilização e liberar capacidade. Isso aumenta a densidade de contêineres e pode comprometer a estabilidade do cluster quando o tráfego da aplicação aumenta.
Para resolver esses problemas, o ack-koordinator fornece o recurso de resource profiling. Ele recomenda especificações de recursos no nível de contêiner e reduz a complexidade da configuração. O ACK disponibiliza esse recurso no console, permitindo que os administradores de aplicações avaliem rapidamente se as especificações atuais são adequadas e façam ajustes conforme necessário. Também é possível usar a linha de comando para gerenciar perfis de recursos de aplicações diretamente por meio de um CRD.
Uso do resource profiling no console
Etapa 1: Instalar e ativar o resource profiling
Faça login no ACK console. 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 Cost Optimization, clique na aba Resource Profiling. Na seção Resource Profiling, siga as instruções na tela para ativar o recurso.
-
Instalação ou atualização de componente: Siga as instruções na tela para instalar ou atualizar o componente ack-koordinator. Se for a primeira vez que você usa este recurso, instale o componente ack-koordinator.
NotaSe o seu componente ack-koordinator estiver em uma versão anterior à v0.7.0, migre-o e atualize-o. Para mais informações, consulte Migrate ack-koordinator from the application marketplace to the component center.
Configuração de profiling: Após a instalação ou atualização, selecione Default Settings para controlar o escopo do profiling (recomendado). Posteriormente, você também pode clicar em Profiling Configuration no console para ajustar as configurações.
-
Clique em Enable Resource Profiling para acessar a página Resource Profiling.
Etapa 2: Gerenciar políticas de profiling
Faça login no ACK console. 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 Cost Optimization, clique na aba Resource Profiling e, em seguida, clique em Profiling Configuration.
Existem dois modos de configuração disponíveis: Global Configuration e Automated O&M mode. O modo padrão recomendado durante a instalação do componente é o Global Configuration. Modifique o modo e os parâmetros aqui e clique em OK para aplicar as alterações.
Configuração global (recomendada)
O modo Global Configuration ativa o resource profiling para todas as workloads. Por padrão, ele exclui os namespaces arms-prom e kube-system.
Parâmetro
Descrição
Intervalo de valores
Excluded Namespace
Namespaces para os quais o resource profiling está desativado, geralmente destinados a componentes de sistema. O escopo final do profiling corresponde à interseção entre os namespaces e os tipos de workload especificados.
Namespaces existentes no cluster atual. É possível selecionar vários namespaces. Valor padrão: kube-system e arms-prom.
Workload Type
Tipos de workload para os quais o resource profiling está ativado. O escopo final do profiling corresponde à interseção entre os namespaces e os tipos de workload especificados.
As workloads nativas do Kubernetes suportadas são Deployment, StatefulSet e DaemonSet. É possível selecionar vários tipos de workload.
CPU Redundancy Rate
Margem de segurança para geração dos resultados de resource profiling. Para detalhes, veja a descrição a seguir.
Um número não negativo. Opções comuns são 70%, 50% e 30%.
Memory Redundancy Rate
Margem de segurança para geração dos resultados de resource profiling. Para detalhes, veja a descrição a seguir.
Um número não negativo. Opções comuns são 70%, 50% e 30%.
Configuração de O&M automatizado
O modo Automated O&M ativa o resource profiling apenas para workloads nos namespaces selecionados. Se o seu cluster for grande (por exemplo, com mais de 1.000 nós) ou se você desejar testar esse recurso apenas em um subconjunto de workloads, use este modo para especificar o escopo conforme necessário.
Parâmetro
Descrição
Intervalo de valores
Namespace
Namespaces para os quais o resource profiling está ativado. O escopo final do profiling corresponde à interseção entre os namespaces e os tipos de workload especificados.
Namespaces existentes no cluster atual. É possível selecionar vários namespaces.
Workload Type
Tipos de workload para os quais o resource profiling está ativado. O escopo final do profiling corresponde à interseção entre os namespaces e os tipos de workload especificados.
As workloads nativas do Kubernetes suportadas são Deployment, StatefulSet e DaemonSet. É possível selecionar vários tipos de workload.
CPU Redundancy Rate
Margem de segurança para geração dos resultados de resource profiling. Para detalhes, veja a descrição a seguir.
Um número não negativo. Opções comuns são 70%, 50% e 30%.
Memory Redundancy Rate
Margem de segurança para geração dos resultados de resource profiling. Para detalhes, veja a descrição a seguir.
Um número não negativo. Opções comuns são 70%, 50% e 30%.
Uma margem de consumo de recursos é a prática de não utilizar 100% dos recursos físicos quando os administradores avaliam a capacidade da aplicação, como Queries Per Second (QPS). Isso ocorre devido às limitações dos recursos físicos, como hyper-threading, e à necessidade de as aplicações reservarem recursos para lidar com requisições de carga durante períodos de pico. Se a diferença entre o valor do perfil e o request original exceder a margem de segurança, o sistema fornecerá uma recomendação de downgrade. Para detalhes sobre o algoritmo, consulte a descrição das recomendações de profiling no tópico Application Profiling Overview.

Etapa 3: Visualizar a visão geral do profiling
Após configurar a política de resource profiling, visualize os resultados para cada workload na página Resource Profiling.
Para melhorar a precisão, o sistema solicita a coleta de pelo menos 24 horas de dados quando você usa esse recurso pela primeira vez.
A tabela a seguir descreve as colunas da visão geral do profiling.
Na tabela abaixo, um hífen (-) indica que o campo não se aplica.
|
Coluna |
Descrição |
Valores |
Filtrável |
|
Nome da workload |
Nome da workload. |
- |
Sim. Pesquise exatamente por nome na parte superior da página. |
|
Namespace |
Namespace da workload. |
- |
Sim. Por padrão, o namespace kube-system é excluído das condições de filtro. |
|
Tipo de workload |
Tipo da workload. |
Deployment, DaemonSet e StatefulSet. |
Sim. O filtro padrão é All. |
|
Request de CPU |
Request de recurso de CPU dos pods da workload. |
- |
Não. |
|
Request de memória |
Request de recurso de memória dos pods da workload. |
- |
Não. |
|
Status dos dados de perfil |
Status do resource profiling para a workload. |
|
Não. |
|
Perfil de CPU, perfil de memória |
Recomendação baseada no valor do perfil, no request original e na margem de consumo de recursos configurada. |
Inclui Upgrade, Downgrade e Keep. A porcentagem indica a magnitude do desvio, calculada pela seguinte fórmula: |
Sim. As condições de filtro padrão são Upgrade e Downgrade. |
|
Hora de criação |
Momento em que o resultado do profiling foi criado. |
- |
Não. |
|
Alterar configuração de recursos |
Após avaliar os resultados e recomendações do profiling, clique em Change Resource Configuration para aumentar ou diminuir os recursos. Para mais informações, consulte Etapa 5: Aplicar especificações de recursos recomendadas. |
- |
Não. |
O resource profiling do ACK gera um valor de perfil para a especificação de recursos de cada contêiner em uma workload. Ao comparar o valor do perfil (Recommend), o request original (Request) e a margem de consumo de recursos (Buffer) configurada na política de profiling, o console fornece recomendações de Upgrade ou Downgrade para o request. Se uma workload possuir múltiplos contêineres, o console destaca aquele com o maior desvio. A lógica de cálculo é a seguinte:
Se o valor do perfil (Recommend) for maior que o request original (Request), o contêiner tem usado recursos acima do solicitado por um período prolongado. Isso representa um risco à estabilidade. Aumente a especificação de recursos oportunamente. O console exibirá uma recomendação de "Upgrade".
-
Caso o valor do perfil (Recommend) seja menor que o request original (Request), o contêiner pode estar desperdiçando recursos, sendo possível reduzir a especificação. Essa decisão deve considerar a margem de consumo de recursos configurada.
Calcule a especificação alvo de recursos (Target) com base no valor do perfil e na margem de consumo configurada (Buffer): Target = Recommend * (1 + Buffer).
Calcule o desvio (Degree) do request original (Request) em relação à especificação alvo (Target): Degree = 1 - (Request / Target).
Com base no valor do perfil e no nível de desvio (Degree), o console gera uma recomendação para CPU e memória. Se o valor absoluto do desvio (Degree) for superior a 0,1, o console exibirá uma recomendação de "Downgrade".
Em todos os outros casos, a recomendação é Maintain a especificação atual, indicando que nenhum ajuste é necessário.
Etapa 4: Visualizar detalhes do perfil da aplicação
Na página Resource Profiling, clique no nome de uma workload para abrir sua página de detalhes do perfil.
A página de detalhes contém três partes: informações básicas da workload, curvas de perfil de recursos para cada contêiner e uma janela para alterar as especificações de recursos da aplicação.
Conforme mostrado na figura anterior, a tabela a seguir descreve as métricas na curva de recursos, usando CPU como exemplo.
|
Nome da curva |
Descrição |
|
cpu limit |
Limite de recurso de CPU do contêiner. |
|
cpu request |
Request de recurso de CPU do contêiner. |
|
cpu recommend |
Valor de CPU do perfil para o contêiner. |
|
cpu usage (average) |
Uso médio de CPU em todas as réplicas de contêiner da workload. |
|
cpu usage (max) |
Uso máximo de CPU entre todas as réplicas de contêiner da workload. |
Etapa 5: Aplicar especificações de recursos recomendadas
Use a margem de segurança configurada como referência para a necessidade alvo de recursos. Por exemplo, adicione um fator de margem sobre o valor do perfil, como 4.742 * 1,3 ≈ 6,2.
A tabela a seguir descreve os parâmetros.
|
Parâmetro |
Descrição |
|
Current resource request |
Request atual de recursos do contêiner. |
|
Current resource limit |
Limite atual de recursos do contêiner. |
|
Profiled value |
Valor do perfil gerado para o contêiner, utilizável como referência para o request de recursos. |
|
Safety buffer |
Margem de segurança configurada na política de profiling, utilizável como referência para a necessidade alvo de recursos. Por exemplo, adicione um fator de margem sobre o valor do perfil, como 4.742 * 1,3 ≈ 6,2. |
|
New Resource Request |
Valor alvo para o request de recursos do contêiner. |
|
New Resource Limit |
Valor alvo para o limite de recursos do contêiner. Nota: Se a workload usar agendamento com reconhecimento de topologia de CPU, o limite de recursos de CPU deve ser um número inteiro. |
Após concluir a configuração, clique em Submit. O sistema atualiza as especificações de recursos e redireciona você automaticamente para a página de detalhes da workload.
Depois que as especificações de recursos forem atualizadas, o controller executa uma atualização contínua da workload e recria seus pods.
Uso do resource profiling via linha de comando
Etapa 1: Ativar o resource profiling
-
Crie um arquivo chamado
recommendation-profile.yamlcom o seguinte conteúdo yaml para ativar o resource profiling para uma workload.Um RecommendationProfile CRD ativa o resource profiling para uma workload e fornece dados de especificação de recursos para seus contêineres. Controle o escopo do profiling especificando namespaces e tipos de workload. O escopo final é a interseção dos dois.
apiVersion: autoscaling.alibabacloud.com/v1alpha1 kind: RecommendationProfile metadata: # The object name. A namespace is not required for this cluster-scoped object. name: profile-demo spec: # The workload types for which to enable resource profiling. controllerKind: - Deployment # The namespaces for which to enable resource profiling. enabledNamespaces: - defaultA tabela a seguir descreve os campos de configuração.
Parâmetro
Tipo
Descrição
metadata.nameString
Nome do objeto. Não é necessário um namespace porque RecommendationProfile é um objeto com escopo de cluster (não namespaced).
spec.controllerKindString
Tipos de workload para os quais o resource profiling está ativado. Os tipos suportados incluem Deployment, StatefulSet e DaemonSet.
spec.enabledNamespacesString
Namespaces para os quais o resource profiling está ativado.
-
Aplique a configuração do perfil.
kubectl apply -f recommendation-profile.yaml -
Crie um arquivo chamado
cpu-load-gen.yamlcom o seguinte conteúdo.apiVersion: apps/v1 kind: Deployment metadata: name: cpu-load-gen labels: app: cpu-load-gen spec: replicas: 2 selector: matchLabels: app: cpu-load-gen-selector template: metadata: labels: app: cpu-load-gen-selector spec: containers: - name: cpu-load-gen image: registry.cn-zhangjiakou.aliyuncs.com/acs/slo-test-cpu-load-gen:v0.1 command: ["cpu_load_gen.sh"] imagePullPolicy: Always resources: requests: cpu: 8 # The CPU request for this application is 8 cores. memory: "1Gi" limits: cpu: 12 memory: "2Gi" -
Implante a aplicação cpu-load-gen.
kubectl apply -f cpu-load-gen.yaml -
Obtenha os resultados do resource profiling.
kubectl get recommendations -l \ "alpha.alibabacloud.com/recommendation-workload-apiVersion=apps-v1, \ alpha.alibabacloud.com/recommendation-workload-kind=Deployment, \ alpha.alibabacloud.com/recommendation-workload-name=cpu-load-gen" -o yamlO ack-koordinator gera um perfil de recursos para cada workload analisada e armazena os resultados em um Recommendation CRD. Abaixo está um exemplo de perfil de recursos para a workload
cpu-load-gen.apiVersion: autoscaling.alibabacloud.com/v1alpha1 kind: Recommendation metadata: labels: alpha.alibabacloud.com/recommendation-workload-apiVersion: apps-v1 alpha.alibabacloud.com/recommendation-workload-kind: Deployment alpha.alibabacloud.com/recommendation-workload-name: cpu-load-gen name: f20ac0b3-dc7f-4f47-b3d9-bd91f906**** namespace: recommender-demo spec: workloadRef: apiVersion: apps/v1 kind: Deployment name: cpu-load-gen status: recommendResources: containerRecommendations: - containerName: cpu-load-gen target: cpu: 4742m memory: 262144k originalTarget: # Intermediate result of the resource profiling algorithm. Do not use directly. # ...Para simplificar a recuperação, o objeto Recommendation é criado no mesmo namespace da workload. Ele também inclui rótulos que especificam a versão da api, o tipo e o nome da workload, conforme descrito na tabela a seguir.
Chave do rótulo
Descrição
Exemplo
alpha.alibabacloud.com/recommendation-workload-apiVersionVersão da api da workload. A barra (/) é substituída por um hífen (-) para cumprir a sintaxe de rótulos do Kubernetes.
apps-v1 (de apps/v1)
alpha.alibabacloud.com/recommendation-workload-kindTipo da workload, como Deployment ou StatefulSet.
Deployment
alpha.alibabacloud.com/recommendation-workload-nameNome da workload. Deve ter no máximo 63 caracteres para cumprir a sintaxe de rótulos do Kubernetes.
cpu-load-gen
Os resultados do resource profiling para cada contêiner são armazenados em
status.recommendResources.containerRecommendations. A tabela a seguir descreve os campos.Campo
Descrição
Formato
Exemplo
containerNameNome do contêiner.
string
cpu-load-gen
targetEspecificações de recursos do perfil, incluindo CPU e memória.
map[ResourceName]resource.Quantity
cpu: 4742m
memory: 262144k
originalTargetResultado intermediário do algoritmo de profiling. Não use este campo diretamente.
-
-
NotaO valor mínimo de CPU do perfil por pod é 0,025 núcleos, e o valor mínimo de memória é 250 MB.
Ao comparar as especificações de recursos declaradas na aplicação
cpu-load-gencom os resultados do profiling, nota-se que o request de CPU está superprovisionado. Reduza o request para economizar recursos do cluster.Categoria
Especificação original
Especificação do perfil
CPU
8 núcleos
4.742 núcleos
Etapa 2: (Opcional) Visualizar os resultados no Prometheus
O componente ack-koordinator fornece uma interface de consulta Prometheus para resultados de resource profiling. Visualize esses resultados diretamente usando o recurso Prometheus Monitoring no ACK.
-
Se for a primeira vez que você usa este dashboard, certifique-se de que o dashboard Resource Profile esteja atualizado para a versão mais recente. Para etapas de atualização, consulte Related operations.
Para visualizar os resultados do resource profiling no console ACK usando o Prometheus Monitoring, siga estas etapas:
Faça login no ACK console. 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 Prometheus Monitoring, escolha .
Na aba Resource Profile, visualize dados detalhados, incluindo especificações de contêiner (Request), uso real de recursos do contêiner (Usage) e especificações de recursos do perfil (Recommend). Para mais informações, consulte Connect to and configure Managed Service for Prometheus.
-
Caso possua uma instância Prometheus autogerenciada, configure seu dashboard com base nas seguintes métricas.
# Profiled CPU resource specification for a container in the workload. koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="cpu"} # Profiled memory resource specification for a container in the workload. koord_manager_recommender_recommendation_workload_target{exported_namespace="$namespace", workload_name="$workload", container_name="$container", resource="memory"}ImportanteA métrica de resource profiling fornecida pelo componente ack-koordinator foi renomeada para
koord_manager_recommender_recommendation_workload_targetna v1.5.0-ack1.14. No entanto, a métricaslo_manager_recommender_recommendation_workload_targetde versões anteriores ainda é compatível. Se você tiver uma instância Prometheus autogerenciada, mude parakoord_manager_recommender_recommendation_workload_targetapós atualizar o componente ack-koordinator para v1.5.0-ack1.14 ou posterior.
FAQ
Algoritmo de resource profiling
O algoritmo de resource profiling usa um modelo de dados multidimensional que funciona da seguinte forma:
Coleta continuamente dados de uso de recursos do contêiner e calcula estatísticas agregadas, como valores de pico, médias ponderadas e percentis para uso de CPU e memória.
A recomendação final define o valor recomendado de CPU no percentil P95 e o valor recomendado de memória no percentil P99. O algoritmo adiciona uma margem de segurança a ambos para garantir a confiabilidade da workload.
Otimizado para atualidade, o algoritmo considera apenas dados dos últimos 14 dias. Ele usa um modelo de janela deslizante de meia-vida para agregação, onde o peso dos pontos de dados mais antigos diminui gradualmente.
Considera eventos de runtime do contêiner, como encerramentos por falta de memória (OOM), para melhorar a precisão dos valores do perfil.
Tipos de aplicação adequados
O resource profiling é mais adequado para aplicações de serviços online.
Atualmente, os resultados do profiling priorizam garantir que um contêiner tenha recursos suficientes para cobrir a vasta maioria de suas amostras de uso. No entanto, essa abordagem pode ser conservadora para certos tipos de aplicação. Para aplicações offline, como tarefas de processamento em lote que priorizam o throughput geral e toleram alguma contenção de recursos para melhorar a utilização do cluster, os resultados podem parecer excessivamente conservadores. Além disso, para componentes críticos de sistema implantados em configuração ativo-passivo, as réplicas passivas ficam ociosas por longos períodos, e seu baixo uso de recursos pode interferir no algoritmo de profiling. Nesses cenários, revise e ajuste os resultados do profiling conforme necessário antes de aplicá-los. Recomendamos manter-se atualizado com as novidades do produto sobre resource profiling.
Uso de valores do perfil para requests e limits
Isso depende da sua workload específica. Os valores do perfil fornecem um resumo da demanda atual de recursos da sua aplicação. Use-os como linha de base e ajuste-os com base nas características da sua aplicação e nos requisitos de negócios.
Por exemplo, para aplicações que precisam lidar com picos de tráfego ou exigem failover transparente em uma arquitetura ativo-ativo, adicione uma margem de recursos. Para aplicações sensíveis a recursos que não apresentam bom desempenho em hosts com alta carga, aumente a alocação de recursos além do valor do perfil.
Visualizar métricas em Prometheus autogerenciado
O módulo ack-koord-manager do componente ack-koordinator expõe métricas de resource profiling como um endpoint HTTP formatado para Prometheus. Obtenha o endereço ip do pod e acesse os dados das métricas.
-
Obtenha o endereço ip do pod.
kubectl get pod -A -o wide | grep koord-managerSaída esperada:
kube-system ack-koord-manager-b86bd47d9-92f6m 1/1 Running 0 16h 10.10.0.xxx cn-hangzhou.10.10.0.xxx <none> <none> kube-system ack-koord-manager-b86bd47d9-vg5z7 1/1 Running 0 16h 10.10.0.xxx cn-hangzhou.10.10.0.xxx <none> <none> -
Execute o comando a seguir para visualizar os dados das métricas (observe que o ack-koord-manager executa em modo ativo-passivo de réplica dupla e os dados estão disponíveis apenas no Pod da réplica primária). Para a porta
port(padrão: 9326), consulte a configuração do Deployment do ack-koord-manager.Certifique-se de que o servidor onde você executa o comando possa se comunicar com a rede de contêineres do cluster.
curl -s http://10.10.0.xxx:9326/all-metrics | grep slo_manager_recommender_recommendation_workload_target # If you use an ack-koordinator version earlier than v1.5.0-ack1.12, run the following command to view the metrics data. curl -s http://10.10.0.xxx:9326/metrics | grep slo_manager_recommender_recommendation_workload_targetSaída esperada:
# HELP slo_manager_recommender_recommendation_workload_target Recommendation of workload resource request. # TYPE slo_manager_recommender_recommendation_workload_target gauge slo_manager_recommender_recommendation_workload_target{container_name="xxx",namespace="xxx",recommendation_name="d2169dbf-fb36-4bf4-99d1-673577fb85c1",resource="cpu",workload_api_version="apps/v1",workload_kind="Deployment",workload_name="xxx"} 0.025 slo_manager_recommender_recommendation_workload_target{container_name="xxx",namespace="xxx",recommendation_name="d2169dbf-fb36-4bf4-99d1-673577fb85c1",resource="memory",workload_api_version="apps/v1",workload_kind="Deployment",workload_name="xxx"} 2.62144e+08
Após a instalação do componente ack-koordinator, ele cria automaticamente objetos Service e ServiceMonitor associados aos pods correspondentes. Se você usar o Managed Service for Prometheus, o serviço coleta e exibe automaticamente essas métricas no dashboard Grafana correspondente.
O Prometheus suporta vários métodos de coleta. Caso use uma instância Prometheus autogerenciada, consulte a documentação oficial do Prometheus para configuração e use o processo descrito acima para depuração. Após a depuração, consulte Etapa 2: (Opcional) Visualizar os resultados no Prometheus para configurar um dashboard Grafana em seu ambiente.
Excluir resultados e regras de profiling
Os Recommendation CRDs armazenam resultados de profiling, e os RecommendationProfile CRDs armazenam regras de profiling. Execute os comandos a seguir para excluir todos os resultados e regras.
# Delete all profiling results.
kubectl delete recommendation -A --all
# Delete all profiling rules.
kubectl delete recommendationprofile -A --all
Conceder permissões a usuários ram
A autorização no ACK possui duas camadas: autorização ram para acesso básico a recursos e RBAC (Role-Based Access Control) para permissões dentro do cluster. Para uma visão geral, consulte Authorization best practices. Para conceder permissões a um usuário ram para usar o resource profiling, configure as permissões em ambos os níveis:
-
Autorização ram
Faça login no RAM console com sua conta Alibaba Cloud e conceda a política de sistema integrada AliyunCSFullAccess ao usuário ram. Para instruções detalhadas, consulte Grant permissions.
-
Autorização RBAC
Após concluir a autorização ram, conceda ao usuário ram a função
developerou superior no cluster alvo. Para instruções, consulte Use RBAC to authorize operations on cluster resources.
A função predefinida de desenvolvedor concede acesso de leitura e gravação a todos os recursos do Kubernetes no cluster. Para um controle mais granular, crie ou edite um ClusterRole personalizado seguindo as instruções em Use custom RBAC roles to restrict resource operations in a cluster. O recurso de resource profiling requer a adição das seguintes regras ao ClusterRole:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: recommendation-clusterrole
rules:
- apiGroups:
- "autoscaling.alibabacloud.com"
resources:
- "*"
verbs:
- "*"