Os componentes do sistema ACK — incluindo componentes de armazenamento, rede e auto scaling — são executados como DaemonSets, Deployments e outros resources do Kubernetes no namespace kube-system. Este tópico explica como configurar a coleta de logs para esses componentes usando o Simple Log Service (SLS), permitindo que você inspecione o comportamento dos componentes durante a depuração.
Os seguintes componentes são suportados:
|
Componente |
Tipo |
Prefixo do nome do Pod |
**Valor de |
|
Plug-in Container Storage Interface (CSI) |
Armazenamento |
|
|
|
Plug-in Terway |
Rede |
|
|
|
Plug-in Flannel |
Rede |
|
|
|
Cluster autoscaler |
Auto scaling |
|
|
Pré-requisitos
Antes de começar, verifique se:
O componente logtail-ds está instalado no seu cluster. O ACK instale o logtail-ds por padrão quando você crie um cluster. Caso não esteja instalado, consulte Coletar dados de log de contêineres usando o Log Service para instalá-lo manualmente.
A versão do alibaba-log-controller é 0.2.0.0-76648ee-aliyun ou posterior. Para verificar a versão, acesse a página Components no console ACK.
Se a versão for anterior, atualize o componente logtail-ds. Consulte Gerenciar componentes do sistema.
A coleta de logs grava dados em um Logstore do Simple Log Service e gera custos de ingestão e armazenamento. Colete logs apenas dos componentes que você precisa depurar.
Etapa 1: Crie configurações de coleta de logs
As configurações de coleta de logs são implementadas como resources personalizados AliyunLogConfig. Ao criar um objeto AliyunLogConfig, o alibaba-log-controller configure automaticamente o Logstore correspondente e as regras de coleta no Simple Log Service.
Todas as configurações usam inputType: plugin com service_docker_stdout para coletar fluxos stdout e stderr dos Pods no namespace kube-system. O campo K8sPodRegex direciona Pods específicos pelo prefixo do nome.
Para obter orientações gerais sobre a criação de objetos de resource personalizado, consulte Gerencie resources personalizados.
Plug-in CSI
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# Must be unique within the cluster.
name: k8s-csi-log
namespace: kube-system
spec:
# Target Logstore name.
logstore: k8s-csi-log
logtailConfig:
inputType: plugin
# Must match metadata.name.
configName: k8s-csi-log
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
K8sNamespaceRegex: "^kube-system$"
K8sPodRegex: "^csi.*$"
Plug-in Terway
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: k8s-terway-log
namespace: kube-system
spec:
logstore: k8s-terway-log
logtailConfig:
inputType: plugin
configName: k8s-terway-log
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
K8sNamespaceRegex: "^kube-system$"
K8sPodRegex: "^terway-eniip.*$"
Plug-in Flannel
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: k8s-flannel-log
namespace: kube-system
spec:
logstore: k8s-flannel-log
logtailConfig:
inputType: plugin
configName: k8s-flannel-log
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
K8sNamespaceRegex: "^kube-system$"
K8sPodRegex: "^kube-flannel-ds.*$"
Cluster autoscaler
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: k8s-cluster-autoscaler-log
namespace: kube-system
spec:
logstore: k8s-cluster-autoscaler-log
logtailConfig:
inputType: plugin
configName: k8s-cluster-autoscaler-log
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
K8sNamespaceRegex: "^kube-system$"
K8sPodRegex: "^cluster-autoscaler.*$"
Etapa 2: Visualize arquivos de log
Após o alibaba-log-controller processar a configuração, os logs aparecem no console do Simple Log Service no Logstore especificado (por exemplo, k8s-csi-log).
Para consultar e visualize os logs coletados, consulte Etapa 4: Visualizar dados de log.