This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
Upgrade on Elastic Cloud on Kubernetes (ECK)
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Upgrade on Elastic Cloud on Kubernetes (ECK)
editThe ECK orchestrator can safely perform upgrades to newer versions of the various Elastic Stack resources.
To upgrade on ECK, first do the following:
- Ensure you’re prepared to upgrade.
- Ensure the ECK version is compatible with the Elastic Stack version you’re targeting. If necessary, upgrade your orchestrator.
Perform the upgrade
editWhen you are ready, modify the version field in the resource spec to the desired stack version and the orchestrator will start the upgrade process automatically. Do this for each resource, including Elasticsearch and Kibana. In the following example, we’re modifying the version to 9.0.0.
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: elasticsearch-sample
namespace: production
spec:
version: 9.0.0
monitoring:
metrics:
elasticsearchRefs:
- name: monitoring-cluster
namespace: observability
logs:
elasticsearchRefs:
- name: monitoring-cluster
namespace: observability
http:
service:
spec:
type: LoadBalancer
nodeSets:
- name: master
count: 3
config:
node.roles: ["master"]
xpack.ml.enabled: true
node.store.allow_mmap: false
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: standard
podTemplate:
metadata:
labels:
key: sample
spec:
initContainers:
- name: sysctl
securityContext:
privileged: true
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
containers:
- name: elasticsearch
resources:
requests:
memory: 2Gi
cpu: 0.5
limits:
memory: 2Gi
cpu: 1
- name: data
count: 3
config:
node.roles: ["data", "ingest", "ml", "transform"]
node.store.allow_mmap: false
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: standard
podTemplate:
metadata:
labels:
key: sample
spec:
initContainers:
- name: sysctl
securityContext:
privileged: true
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
containers:
- name: elasticsearch
resources:
requests:
memory: 2Gi
cpu: 0.5
limits:
memory: 2Gi
cpu: 1
---
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kibana-sample
namespace: production
spec:
version: 9.0.0
monitoring:
metrics:
elasticsearchRefs:
- name: monitoring-cluster
namespace: observability
logs:
elasticsearchRefs:
- name: monitoring-cluster
namespace: observability
http:
service:
spec:
type: LoadBalancer
count: 1
elasticsearchRef:
name: elasticsearch-sample
ECK will ensure that Elastic Stack resources are upgraded in the correct order. For more information on how the orchestrator performs upgrades and how to tune its behavior, check out Nodes orchestration.
Next, upgrade your ingest components in the following order:
- Logstash: upgrade instructions
- Beats: upgrade instructions
- Elastic Agent: upgrade instructions
- APM agents
- Custom clients