Helm для установки Fluentd-Cloudwatch на Amazon EKS - PullRequest
0 голосов
/ 23 октября 2018

При попытке установить «инкубатор / 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>`

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Загрузите и обновите 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.

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

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

0 голосов
/ 24 октября 2018

На основании это выглядит так, будто оно просто пытается преобразовать 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, вы можете увидеть здесь , что она смонтирована как hostPath, так что если вы выполните:

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

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

...