-
Notifications
You must be signed in to change notification settings - Fork 195
Fix GKE autopilot reco #4490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Fix GKE autopilot reco #4490
Conversation
Vale Linting ResultsSummary: 4 suggestions found 💡 Suggestions (4)
|
🔍 Preview links for changed docs |
deploy-manage/deploy/cloud-on-k8s/deploy-eck-on-gke-autopilot.md
Outdated
Show resolved
Hide resolved
… into gke-autopilot-fixes
pebrc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I few small clarifications.
In general I feel like this is quite a tricky subject to navigate and present with different recommendations per Elasticsearch version and now we added another layer of vendor specific recommendations (for GKE/Autopilot). We are however now quite inconsistent with the vendor specific recommendations (only GKE/Autopilot is covered) but one could ask why we do not cover other vendors. AWS EKS with custom AMIs or LaunchTemplates or Azure AKS --linux-os-config provide similar options. Where do we draw the line?
deploy-manage/deploy/cloud-on-k8s/deploy-eck-on-gke-autopilot.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Peter Brachwitz <peter.brachwitz@gmail.com>
this specifically is addressing a limitation that this specific combo of vendor/version has, so I don't think it's too strange that we go a little deeper in this one area. we could hint that there are other methods for other vendors that are untested (unsupported?), but these are "known good" approaches, if you'd like, perhaps as a followup PR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, some minor suggestions added.
| ## Deploy a standalone Elastic Agent and/or Beats [k8s-autopilot-deploy-agent-beats] | ||
|
|
||
| When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `Daemonsets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes). | ||
| When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `DaemonSets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That sentence is a bit difficult to digest.... the when unset is not clear (what can be set that uses a hostPath? Probably the data directory of the beat or the state directory of the Elastic agent, but the unset statement feels weird).
Not sure if this sounds better or feels easier.... @pebrc, @shainaraskas , wdyt?
| When running Elastic Agent and Beats within GKE Autopilot there are storage constraints to be considered. No `HostPath` volumes are allowed, which the ECK operator defaults to when unset for both `Deployments` and `DaemonSets`. Instead use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes). | |
| When running {{agent}} and {{beats}} on GKE Autopilot, storage constraints apply. GKE Autopilot does not allow `hostPath` volumes. By default, the ECK operator uses a `hostPath` volume for the data directory when no alternative volume is configured, whether the workload is deployed as a `Deployment` or a `DaemonSet`. To run successfully, you can use [Kubernetes ephemeral volumes](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes) instead. |
Summary
Followup to elastic/cloud-on-k8s#8971 - @pebrc caught that gke autopilot will reject this setting because it does not match the approved DaemonSet
based on @barkbay's work, I've added instructions for using a custom ComputeClass as an alternative to using a DaemonSet.
Generative AI disclosure