providing and supporting docker images · label schema label...

97
Providing and Supporting Docker Images Philipp Krenn@xeraa

Upload: others

Post on 13-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Providing and Supporting

Docker ImagesPhilipp Krenn̴̴̴̴@xeraa

Page 2: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Infrastructure | Developer !

Page 3: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Docker?

Page 4: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Docker in production?

Page 5: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

stateful Docker images?

Page 6: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

our images?

Page 7: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses our stack with

other images?

Page 8: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Docker: the world's most heavily funded college project

Internal quote from Slack

Page 9: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 10: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Content"Official"

Base imagesRelease policy

SecuritySupport

Orchestration

Page 11: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Docker Hub

"official"

Page 12: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

What do you get?docker pull elasticsearch

Page 13: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 14: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 15: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 16: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Custom registrydocker.elastic.co

Page 17: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

I’m surprised more people don’t just host their own container registries

since doing that is faster than every cloud offering and docker hub

https://twitter.com/jessfraz/status/978449365261082625

Page 18: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Our MotivationDownload statisticsSpeed & reliability

Page 19: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 20: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

https://www.docker.elastic.co

Page 21: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

ProblemsSome broken tooling like

automated builds, Kitematic,...ChinaIPv6

Page 22: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 24: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Quick QuizOur image or not?

Page 25: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

docker pull logstash:alpine

Page 26: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

docker pull elastic/elasticsearch

Page 27: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

docker pull kibana

Page 28: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

docker pull docker.elastic.co/beats/filebeat:6.2.3

Page 29: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Base Images

Page 30: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Elasticsearch

Alpine

Page 31: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Kibana̴Beats̴Logstash

Ubuntu

Page 32: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Common base image in 5.4+

CentOS 7

Page 33: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

https://github.com/elastic/elasticsearch-docker/blob/master/templates/Dockerfile.j2

FROM centos:7LABEL maintainer "Elastic Docker Team <[email protected]>"

ENV ELASTIC_CONTAINER trueENV PATH /usr/share/elasticsearch/bin:$PATHENV JAVA_HOME /usr/lib/jvm/jre-1.8.0-openjdk

RUN yum update -y && \ yum install -y nc java-1.8.0-openjdk-headless unzip wget which && \ yum clean all

Page 34: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Upside

Similar setupShared layers

JVM images largish anyway

Page 35: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 36: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Downside

Size

Page 37: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

$ docker imagesREPOSITORY TAG IMAGE ID SIZEdocker.elastic.co/kibana/kibana 6.3.0 128b6bfb9645 729MBdocker.elastic.co/elasticsearch/elasticsearch 6.3.0 7e188ef97fe0 783MBdocker.elastic.co/beats/filebeat 6.3.0 f90fd7f32529 318MBdocker.elastic.co/kibana/kibana 6.2.4 327c6538ba4c 933MBdocker.elastic.co/elasticsearch/elasticsearch 6.2.4 7cb69da7148d 515MBdocker.elastic.co/beats/filebeat 6.2.4 26a00abcde82 319MBdocker.elastic.co/kibana/kibana 5.6.7 0f8347a118b3 697MBdocker.elastic.co/elasticsearch/elasticsearch 5.6.7 f9bc1b5416b9 574MBdocker.elastic.co/beats/filebeat 5.6.7 02648e71cced 334MBdocker.elastic.co/kibana/kibana 5.3.3 ffe778f7e489 679MBdocker.elastic.co/elasticsearch/elasticsearch 5.3.3 5857f98b5920 165MBdocker.elastic.co/beats/filebeat 5.3.3 c01be8a8f630 232MB

Page 38: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

5.3 5.6 6.2 6.3

ES 165MB 574MB 515MB 783MB

Kibana 679MB 697MB 933MB 729MB

Filebeat 232MB 334MB 319MB 318MB

Page 39: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Does it matter?

stateful vs stateless

Page 40: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

What to

include?

Page 41: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Single image for 5.x

Platinum trial

Page 42: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Three flavors 6.0 to 6.2

Basic*

, OSS, Platinum trial

* Default

Page 43: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 44: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Two flavors 6.3+

Basic / Platinum trial*

, OSS783MB vs 673MB

* Default

Page 45: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Future

Page 46: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Multiple

JDK versions?6.2: OpenJDK 8

6.3 BC: OpenJDK 10.0.1

Page 47: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Multiple

base images?

Page 48: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Windows?!

Page 49: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Release Policy

Page 50: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

No :latest

Page 51: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Zombiesideas that should have been killed by evidence, but keep shambling along

Page 52: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

5 and 5.6?

Page 53: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

What's in a tag?docker.elastic.co/elasticsearch/elasticsearch 5.3.3 5857f98b5920 4 months agodocker.elastic.co/beats/filebeat 5.3.3 c01be8a8f630 5 months agodocker.elastic.co/kibana/kibana 5.3.3 ffe778f7e489 5 months ago

Page 54: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Currently

Overwrite tag

Page 55: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Label SchemaLABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version="{{ elastic_version }}" \ org.label-schema.url="https://www.elastic.co/products/elasticsearch" \ org.label-schema.vcs-url="https://github.com/elastic/elasticsearch-docker" \{% if image_flavor == 'oss' -%} license="Apache-2.0"{% else -%} license="Elastic License"{% endif -%}

Page 56: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Base image & JVM direct dependencies

Page 57: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Future

Add image version?

Page 58: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Security

Page 59: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Run Elasticsearch as

root

Page 60: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Cockroachesclaims that disappear for a while when proved wrong, but just keep on coming

back

Page 61: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

ModeProduction: Clusterable

Development: Local network

Page 62: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

"Docker" modediscovery.type=single-node

Page 63: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Bootstrap checksare here to stay

Page 64: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

6.0+ no more

default credentials

Page 65: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

6.0+ X-Pack non-trial requires

certificates

Page 66: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Support

Page 67: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

The container runs Elasticsearch as user elasticsearch using uid:gid

1000:1000.https://www.elastic.co/guide/en/elasticsearch/reference/current/

docker.html

Page 68: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 69: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 70: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 71: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Don't mutatethe bind mounted local directory

Page 72: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Zombiesideas that should have been killed by evidence, but keep shambling along

Page 73: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Those who do not understand Unix are condemned to reinvent

it, poorly.— Henry Spencer

Page 74: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Docker default value?LimitNOFILE & LimitNPROC

Page 75: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

infinityhttps://github.com/moby/moby/commit/

8db61095a3d0bcb0733580734ba5d54bc27a614d (July 2016)

Page 76: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Test$ docker run --rm centos:7 /bin/bash -c \ 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'10485761048576unlimitedunlimited

Page 77: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Combine two new systems to get

chaos & despair

Page 78: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Docker is a

leaky abstraction

Page 79: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 80: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Orchestration

Page 81: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Kubernetes?

Page 82: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Swarm?

Page 83: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Mesos?

Page 84: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Who uses

Nomad?

Page 85: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

No orchestrationyet

Page 86: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Testingimages for orchestration

Page 87: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Kubernetes 1.8 allows dots in env varshttps://github.com/kubernetes/kubernetes/issues/2707

Page 88: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Kubernetes has made huge improvements in the ability to run

stateful workloads including databases and message queues, but I

still prefer not to run them on Kubernetes.

https://twitter.com/kelseyhightower/status/963413508300812295

Page 89: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Kubernetes makes it easier to deploy stateful services not manage them.

Stateful services must meet Kubernetes half way and manage their own cluster membership, failover, and replication. CockroachDB and Consul are two great examples, but far from

perfect.https://twitter.com/kelseyhightower/status/963415653930553345

Page 90: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version
Page 91: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Conclusion

Page 92: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

"Docker is disrupting the industry"

Page 93: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

"Can I run Elasticsearch on Docker?"

Page 94: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

"Should I run Elasticsearch on Docker?"

Page 95: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Even when stateful services do the right things managing state is still hard. Mixing stateful and stateless applications on the same cluster

elevates the complexity of the entire cluster. Cluster security and upgrades

become much harder.https://twitter.com/kelseyhightower/status/963417215608369153

Page 96: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

https://www.meetup.com/Elasticsearch-Berlin/

Thursday June 14, 19:00Springer Nature

Page 97: Providing and Supporting Docker Images · Label Schema LABEL org.label-schema.schema-version="1.0" \ org.label-schema.vendor="Elastic" \ org.label-schema.name="elasticsearch" \ org.label-schema.version

Questions & DiscussionPhilipp Krenn̴̴̴@xeraa