При попытке установить «incubator / fluentd-cloudwatch» с помощью helm на Amazon EKS и установить пользователя как root, я получаю ответ ниже.

Используемая команда:

helm install --name fluentd incubator/fluentd-cloudwatch --set awsRegion=eu-west-1,rbac.create=true --set extraVars[0]="{ name: FLUENT_UID, value: '0' }"

Ошибка:

Error: YAML parse error on fluentd-cloudwatch/templates/daemonset.yaml: error converting YAML to JSON: yaml: line 38: did not find expected ',' or ']'

Если мы не устанавливаем пользователя как root, то по умолчанию fluentd работает с «свободным» пользователем, и его журнал показывает:

[error]: unexpected error error_class=Errno::EACCES error=#<Errno::
EACCES: Permission denied @ rb_sysopen - /var/log/fluentd-containers.log.pos>`
3
Abhizer Saifee 23 Окт 2018 в 10:20

2 ответа

Лучший ответ

Загрузите и обновите values.yaml, как показано ниже. Изменения внесены в поля awsRegion, rbac.create = true и extraVars.

annotations: {}

awsRegion: us-east-1
awsRole:
awsAccessKeyId:
awsSecretAccessKey:
logGroupName: kubernetes

rbac:
## If true, create and use RBAC resources
create: true

## Ignored if rbac.create is true
serviceAccountName: default
# Add extra environment variables if specified (must be specified as a single line 
object and be quoted)
extraVars:
- "{ name: FLUENT_UID, value: '0' }"

Затем выполните команду ниже, чтобы настроить fluentd в кластере Kubernetes для отправки журналов в CloudWatch Logs.

$ helm install --name fluentd -f .\fluentd-cloudwatch-values.yaml incubator/fluentd-cloudwatch

Я сделал это, и у меня это сработало. Журналы были отправлены в CloudWatch Logs. Также убедитесь, что ваши узлы ec2 имеют роль IAM с соответствующими разрешениями для журналов CloudWatch.

0
Abhizer Saifee 1 Ноя 2018 в 07:49

Судя по , выглядит как будто он просто пытается преобразовать eu-west-1,rbac.create=true в поле JSON как поле, и там есть дополнительная запятая (,), что приводит к сбою.

И если вы посмотрите на values.yaml вы увидите, что правыми отдельными параметрами являются awsRegion и rbac.create, поэтому --set awsRegion=eu-west-1 --set rbac.create=true должен исправить первую ошибку.

Что касается ошибки /var/log/... Permission denied, вы можете увидеть здесь, что он установлен как {{X1 }} поэтому, если вы выполните:

# (means read/write user/group/world)
$ sudo chmod 444 /var/log 

И все ваши узлы, ошибка должна исчезнуть. Обратите внимание, что вам нужно добавить его ко всем узлам, потому что ваш модуль может приземлиться в любом месте вашего кластера.

1
Rico 24 Окт 2018 в 05:54
52943279