AWS EKS Installation of CloudWatch Agent and IAM Troubleshooting
上次安裝好eksctl之後
因為IAM權限是最小權限原則
如果想全開可以參考官方建議的最低權限
以下是除錯心得
- <user> is not authorized to perform: iam:GetOpenIDConnectProvider on resource
- 解法:開啟這條權限
2. <user> is not authorized to perform: eks:TagResource on resource
- 解法:開啟這條權限
回到正題,開始安裝CloudWatch Agent
若是用AWS EKS,他的專屬插件名為「Observability EKS add-on」
官方文件在此
這裡走選項二
選項 2:使用 IAM 服務帳戶角色安裝(僅適用於使用附加元件)
- Step1
eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
這一步沒什麼問題,因為前文已經有排錯過了
- Step2
eksctl create iamserviceaccount \
--name cloudwatch-agent \
--namespace amazon-cloudwatch --cluster my-cluster-name \
--role-name my-service-account-role \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--role-only \
--approve
這一步原本是幫你建立IAM服務帳號
我在這一個步驟有遇到錯誤
所以解決方法是手動去IAM新增一個「Role 角色」
並給予「CloudWatchAgentServerPolicy」的「Policy 政策」來跳過這個步驟
- Step3
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role
這一步沒什麼問題,詳細請看下文的排錯筆記!
更懶人的方法(待測試驗證是否可行)
進入EKS後台
從附加元件找到「Amazon CloudWatch 可觀測性」並打勾安裝
***不過這可能會有權限問題,在此不做示範。
排錯筆記
建立IAM服務帳號失敗
建議去CloudFormation查看進一步的錯誤訊息
發現錯誤來自CloudWatchForEKS這個角色已存在
最後是把add-on刪掉,先手動至IAM創建好role
再通過指令指定cluster及service-account,重新create-addon一次就成功了
指標內容
Overview
Application Insights已啟用
可以配置關聯的元件(哪些要監控,哪些不監控)
Dashboard
EKS區域預設的Dashboard是空的,自行新增
EC2 > By Auto Scaling Group >CPUUtilization
EC2 > By Auto Scaling Group > StatusCheckFailed