SlideShare ist ein Scribd-Unternehmen logo
1 von 29
COREOS OVERVIEW AND
CURRENT STATUS
Presenter Name: Sreenivas Makam
Presented at: Open source Meetup Bangalore
Presentation Date: April 16, 2016
About me
• Senior Engineering Manager at
Cisco Systems Data Center group
• Personal blog can be found at
https://sreeninet.wordpress.com/
and my hacky code at
https://github.com/smakam
• Author of “Mastering CoreOS”
book, published on Feb 2016.
(https://www.packtpub.com/netw
orking-and-servers/mastering-
coreos )
• You can reach me on LinkedIn at
https://in.linkedin.com/in/sreeniva
smakam, Twitter handle -
@srmakam
Container Optimized OS - Characteristics
• All applications run as Containers on top of OS.
• Base OS should be small and fast to bootup.
• Services are managed by Init system. eg: Systemd
• OS need to have auto-update strategy like web
browsers.
• Systems needs to be managed as a cluster rather than
individual node.
• Built-in support should be present for Service
discovery, Container networking and Orchestration.
• Examples – CoreOS, Rancher OS, Redhat Atomic,
Ubuntu snappy, Mesos DCOS, VMWare Photon
CoreOS
• First Container optimized OS. First release was done in July 2013.
• Linux based and based on concepts from ChromeOS.
• OS is Security focused.
• Auto Update OS with A/B partition.
• OS is Open sourced. Along with OS, CoreOS has following
components:
– Systemd as Init system
– Etcd as distributed database
– Fleet as Cluster service scheduler
– Flannel for Container networking
– Docker, Rkt for Containers
• Has commercial components like Tectonic, Quay.
• CoreOS integrates well with Kubernetes
CoreOS Architecture
Kernel
Systemd, cloud-init
Etcd, fleet, flannel, update-service
Docker, Rkt
Docker
Container
Rkt
Container
Kubernetes
Tectonic, Quay
CoreOS
Applications
Orchestration
Platform
CoreOS Automatic Update
• The CoreOS update mechanism is based on Google's open source Omaha protocol
(https://code.google.com/p/omaha/) that is used in the Chrome browser.
• Dual partition scheme is used to achieve automatic update and to handle upgrade
related failures.
• Critical CoreOS services to handle Upgrade are update-engine and locksmith service.
• Etcd is used to serialize upgrades in a CoreOS cluster.
• User can control upgrades using different schemes like etcd-lock, reboot, best effort.
Cluster Architecture - Development
• Single cluster to run critical services
and application Containers.
• Odd cluster size gives better fault
tolerance.
• Used for development purposes.
• etcd is run in a separate node and application
Containers run in Worker nodes.
• Etcd in Worker nodes proxy to main etcd node.
Cluster 1
Cluster 2
Picture from https://coreos.com/os/docs/latest/cluster-architectures.html
Cluster architecture - Production
Cluster 3
Fault Tolerance• This cluster architecture is suited for
production
• There is redundancy available for core
services as well as for application Containers.
• Services are scheduled based on node
metadata(eg: services, worker)
Picture from https://coreos.com/os/docs/latest/cluster-architectures.html
CoreOS Release cycle
• Alpha, Beta, and Stable are release channels within
CoreOS.
• CoreOS releases progress through each channel in this
order: Alpha->Beta->Stable.
• All releases get started as Alpha, but the promotion to
Beta and Stable happens on the basis of testing.
• The major version number (for example, 1000 in
1000.0.0) is the number of days from July 13, 2013,
which was the CoreOS epoch.
core@core-01 ~ $ cat /etc/os-release
NAME=CoreOS
ID=coreos
VERSION=1000.0.0
VERSION_ID=1000.0.0
BUILD_ID=2016-03-27-0652
PRETTY_NAME="CoreOS 1000.0.0 (MoreOS)"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues"
core@core-01 ~ $ uname -a
Linux core-01 4.5.0-coreos-r1 #2 SMP Thu Apr 7 03:52:11 UTC
2016 x86_64 Intel(R) Core(TM) i7-4800MQ CPU @ 2.70
GHz GenuineIntel GNU/Linux
Systemd
• Systemd is an Init system used by CoreOS to
start, stop, and manage processes.
• Dependencies between services can be specified
easily inside the unit files.
• All processes inside a single Systemd unit run in
1 cgroup and this includes forked processes.
• Systemd can monitor health of service and
restart service if it dies.
• Common Systemd unit types—service, socket,
device, and mount.
Systemd unit file example
Fleet.service:
[Unit]
Description=fleet daemon
After=etcd.service
After=etcd2.service
Wants=fleet.socket
After=fleet.socket
[Service]
User=fleet
Environment=GOMAXPROCS=1
ExecStart=/usr/bin/fleetd
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
ordering
dependency
Service
restartability
Unit
grouping
Systemd unit execution
Hello1.service:
[Unit]
Description=My Service
After=docker.service
[Service]
TimeoutStartSec=0
KillMode=none
ExecStartPre=-/usr/bin/docker kill hello1
ExecStartPre=-/usr/bin/docker rm hello1
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name hello1
busybox /bin/sh -c "while true; do echo Hello
World; sleep 1;
done"
Restart=always
RestartSec=30s
ExecStop=/usr/bin/docker stop hello1
[Install]
WantedBy=multi-user.target
Execute service:
1. Copy hello1.service as sudo to /etc/systemd/system.
2. Enable the service:
sudo systemctl enable hello1.service
3. Start hello1.service:
sudo systemctl start hello1.service
Hello1.service Status:
core@core-01 /etc/systemd/system $ systemctl status
hello1.service
? hello1.service - My Service
Loaded: loaded (/etc/systemd/system/hello1.service; disabled;
vendor preset: disabled)
Active: active (running) since Mon 2016-04-04 15:38:29 UTC;
2min 38s ago
Process: 1069 ExecStartPre=/usr/bin/docker pull busybox
(code=exited, status=0/SUCCESS)
Process: 1060 ExecStartPre=/usr/bin/docker rm hello1
(code=exited, status=1/FAILURE)
Process: 961 ExecStartPre=/usr/bin/docker kill hello1
(code=exited, status=1/FAILURE)
Main PID: 1093 (docker)
Memory: 33.1M
CPU: 634ms
CGroup: /system.slice/hello1.service
└─1093 /usr/bin/docker run --name hello1 busybox /bin/sh
-c while true; do echo Hello World;...
Apr 04 15:40:59 core-01 docker[1093]: Hello World
etcd
• Distributed key, value store used by CoreOS nodes.
• Uses Raft consensus algorithm to maintain highly
available cluster.
• Etcd is used outside CoreOS by companies like Cloud
foundry.
• Fleet, Flannel, Kubernetes uses etcd to communicate
configuration and monitoring data.
• Etcd can be used for Service discovery.
• Etcd exposes REST api and also provides etcdctl for CLI
access.
Etcd examples
Member list:
core@core-01 ~ $ etcdctl member list
156d6ef020d72caa: name=a4562fd1d8d346b79e80ca467d82b7ee peerURLs=http://172.17.8.101:2380 clientURLs=http://172.17.8.101:2379
2ba42fe58ee8dc90: name=d29b150786c04239937794f87985cd76 peerURLs=http://172.17.8.102:2380 clientURLs=http://172.17.8.102:2379
72ab4a0a6ba49052: name=7a895214d7274c0f8c362188c3bf8eb8 peerURLs=http://172.17.8.103:2380 clientURLs=http://172.17.8.103:2379
Set, get, delete example:
core@core-01 ~ $ etcdctl set /message hello
hello
core@core-02 ~ $ etcdctl get /message
Hello
core@core-01 ~ $ etcdctl rm /message
PrevNode.Value: hello
Get all keys:
core@core-01 ~ $ etcdctl ls / --recursive
/coreos.com
/coreos.com/updateengine
/coreos.com/updateengine/rebootlock
/coreos.com/updateengine/rebootlock/semaphore
/message
TTL expiry:
core@core-01 ~ $ etcdctl set /expirymessage "I will expire soon"
--ttl 30
I will expire soon
core@core-02 ~ $ etcdctl get /expirymessage
I will expire soon
core@core-02 ~ $ etcdctl get /expirymessage
Error: 100: Key not found (/expirymessage) [51952]
Watch:
Node 1:
core@core-01 ~ $ etcdctl set /didichange "not changed"
not changed
core@core-01 ~ $ etcdctl get /didichange
not changed
core@core-01 ~ $ etcdctl watch /didichange –recursive
----
Node 2:
core@core-02 ~ $ etcdctl set /didichange "changed"
Changed
----
Node 1:
[set] /didichange
changed
Fleet
• Init system for the CoreOS cluster
• Fleet uses etcd for communication across the cluster
• Fleet was originally planned as Orchestrator. After
Kubernetes took the role of Orchestrator, Fleet is used
only for scheduling system services. For example,
Kubernetes services are scheduled using Fleet.
• Fleet is not under active development and is mostly
under the maintenance mode.
• Fleet service exposes REST api and CLI can be
accessed using fleetctl.
Fleet Architecture
• One master Fleet engine is selected
in the CoreOS cluster using etcd.
• Fleet master talks to Fleet agents of
each node and schedules the Jobs.
• Fleet also takes care of Service high
availability at cluster level.
• Fleet global units gets scheduled on
all nodes in the cluster.
• Fleet can schedule units based on
metadata onto the appropriate
node in the cluster.
Fleet global unit example
helloglobals.service:
[Unit]
Description=My Service
After=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill hello
ExecStartPre=-/usr/bin/docker rm hello
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name hello
busybox /bin/sh -c "while true; do echo Hello
World; sleep 1; d
one"
ExecStop=/usr/bin/docker stop hello
[X-Fleet]
Global=true
Start Unit:
fleetctl start helloglobal.service
Fleet Status:
core@core-01 ~ $ fleetctl list-units
UNIT MACHINE ACTIVE SUB
helloglobal.service 7a895214.../172.17.8.103 active running
helloglobal.service a4562fd1.../172.17.8.101 active running
helloglobal.service d29b1507.../172.17.8.102 active running
Systemd status:
core@core-01 ~ $ systemctl status helloglobal.service
? helloglobal.service - My Service
Loaded: loaded (/run/fleet/units/helloglobal.service; linked-
runtime; vendor preset: disabled)
Active: active (running) since Mon 2016-04-04 17:28:17 UTC; 1min
44s ago
Process: 7702 ExecStartPre=/usr/bin/docker pull busybox
(code=exited, status=0/SUCCESS)
Process: 7693 ExecStartPre=/usr/bin/docker rm hello (code=exited,
status=1/FAILURE)
Process: 7686 ExecStartPre=/usr/bin/docker kill hello (code=exited,
status=1/FAILURE)
Main PID: 7716 (docker)
Memory: 9.4M
CPU: 444ms
CGroup: /system.slice/helloglobal.service
└─7716 /usr/bin/docker run --name hello busybox /bin/sh -c
while true; do echo Hello World; ...
Flannel
• Flannel uses an Overlay network to allow Containers
across different hosts to talk to each other.
• Both Docker and Rkt Containers in CoreOS uses
Flannel to do Container networking.
• Projects like Kubernetes use Flannel for Container
networking.
• Flannel can be implemented as a
Container networking
interface(CNI) plugin like shown in
the diagram.
Flannel Architecture
Flannel Control path
Flannel Data path
• Flannel agent in each node communicate to each other using etcd.
• Flannel agent of each node gets an individual subnet and Containers of that node
gets IP address from the subnet.
• Inter-host Container traffic gets encapsulated into either UDP or VXLAN by Flannel
bridge of each node.
Rkt
• Rkt is the Container runtime developed by CoreOS.
• CoreOS created Rkt to have a better security model for
Containers and to have an industry standard.
• Rkt uses the Application Container image (ACI) image
format, which is according to the APPC specification.
• Rkt does not have a daemon(Like Docker) and is managed
by Systemd.
• Rkt uses multiple stages to run Containers. This is done so
that some stages can be swapped with other
implementations.
– First stage does Container image discovery and retrieval.
– Second stage sets the Container runtime environment like
filesystem, cgroups.
– Third stage runs the Container.
Rkt Examples
Run Docker image as Rkt Container:
core@core-02 ~ $ sudo rkt run --insecure-options=image --interactive docker://busybox
image: using image from local store for image name coreos.com/rkt/stage1-coreos:1.2.1
image: remote fetching from URL "docker://busybox"
Downloading sha256:385e281300c: [==============================] 676 KB/676 KB
Downloading sha256:a3ed95caeb0: [==============================] 32 B/32 B
networking: loading networks from /etc/rkt/net.d
networking: loading network default with type ptp
/ #
List pods:
core@core-02 ~ $ rkt list pods
UUID APP IMAGE NAME STATE CREATED
STARTED NETWORK
S
6bafd510 busybox registry-1.docker.io/library/busybox:latest running 6
minutes ago 6 minutes ago default
:ip4=172.16.28.2
List images:
core@core-02 ~ $ rkt image list
ID NAME IMPORT TIME LAST USED
SIZE LATEST
sha512-c0ab44d87499 coreos.com/rkt/stage1-coreos:1.2.1 10
minutes ago 10 minutes ago 152MiB false
sha512-cdb74a334f97 registry-1.docker.io/library/busybox:latest 10
minutes ago 10 minutes ago 2.4MiB true
Rkt Container in Systemd:
[Unit]
Description=nginx
[Service]
# Resource limits
CPUShares=512
MemoryLimit=1G
# Prefetch the image
ExecStartPre=/usr/bin/rkt fetch --insecure-skip-
verify docker://nginx
ExecStart=/usr/bin/rkt run --insecure-skip-verify
--private-net
--port=80-tcp:8080 --volume volume-var-cache-
nginx,kind=host,source=/
home/co
re docker://nginx
KillMode=mixed
Restart=always
CoreOS Installation
• CoreOS can be installed in baremetal using ISO image or
PXE boot.
• Works with majority of Cloud providers – AWS, Google
cloud, DigitalOcean, Azure.
• Works with baremetal cloud like Packet.
• CoreOS can be deployed on Openstack cloud.
• Vagrant based installation can be used for development
purposes.
• Base configuration of CoreOS node can be provided using
cloud-config YAML file. Cloud-init program in CoreOS
system takes care of setting up configuration.
• For Cloud providers, System cloud-config is embedded in
base image and user cloud-config is provided by the user.
Cloud-config sample
#cloud-config
coreos:
etcd2:
#generate a new token for each unique cluster from https://discovery.etcd.io/new
discovery: https://discovery.etcd.io/99ce5d499df6a4a9c004e8596687ccc7
# multi-region and multi-cloud deployments need to use $public_ipv4
advertise-client-urls: http://$public_ipv4:2379
initial-advertise-peer-urls: http://$private_ipv4:2380
# listen on both the official ports and the legacy ports
# legacy ports can be omitted if your application doesn't depend on them
listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001
listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001
fleet:
public-ip: $public_ipv4
units:
# To use etcd2, comment out the above service and uncomment these
# Note: this requires a release that contains etcd2
- name: etcd2.service
command: start
- name: fleet.service
command: start
Dynamic node discovery
Etcd environment
variables
Fleet environment
variable
Services to be started
automatically
CoreOS Ecosystem
• Supports Docker for running Containers.
• Integrates nicely with Kubernetes.
• Mesos can be run on top of CoreOS.
• Kubernetes can be used for orchestrating
Docker and Rkt Containers.
• CoreOS can be used with Openstack.
Tectonic – GIFEE(Google Infrastructure for
everyone else)
Tectonic Distributed Trusted computing
• At the firmware level, the customer key can be
embedded, and this allows customers to verify all
the software running in the system.
• Secure keys embedded in the firmware can verify
the bootloader as well as CoreOS.
• Containers such as Rkt can be verified with their
image signature.
• Logs can be made tamper-proof using the TPM
hardware module embedded in the CPU
motherboard.
• Tectonic integrates CoreOS’s open source components and Kubernetes
along with some integration software to provide Enterprise ready
microservices infrastructure platform.
• With Tectonic, CoreOS is integrating their other commercial offerings
such as CoreUpdate, Quay repository, and Enterprise CoreOS into
Tectonic.
• Tectonic will support both Docker and Rkt Container runtime.
Distributed Trusted computing(Image from
https://tectonic.com/)
Tectonic Software Components
Newer projects
• Ignition – Better cloud-config.
• Clair – Container scanning service for
vulnerabilities
• DEX – Identity management
• Openstack deployment on
Tectonic(https://tectonic.com/blog/openstac
k-and-kubernetes-come-together.html)
References
• CoreOS docs -
https://coreos.com/os/docs/latest/
• DigitalOcean CoreOS tutorials
(https://www.digitalocean.com/
community/tags/coreos?type=tutorials )
• CoreOS Github page(https://github.com/coreos)
• Mastering CoreOS
book(https://www.packtpub.com/networking-
and-servers/mastering-coreos)
DEMO!
APPC(Rkt) vs OCI(Docker)
Reference:
https://coreos.com/blog/making-sense-of-standards.html

Weitere ähnliche Inhalte

Was ist angesagt?

Docker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driverDocker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driverSreenivas Makam
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Fluentd and docker monitoring
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoringVinay Krishna
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...Docker, Inc.
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneD
 
Container Monitoring with Sysdig
Container Monitoring with SysdigContainer Monitoring with Sysdig
Container Monitoring with SysdigSreenivas Makam
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerDocker, Inc.
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiMike Goelzer
 
Docker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing optionsDocker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing optionsSreenivas Makam
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for DockerChristian Beedgen
 
Docker Security Paradigm
Docker Security ParadigmDocker Security Paradigm
Docker Security ParadigmAnis LARGUEM
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for BeginnerShahzad Masud
 
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker, Inc.
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeAjeet Singh Raina
 
Swarm docker bangalore_meetup
Swarm docker bangalore_meetupSwarm docker bangalore_meetup
Swarm docker bangalore_meetupArunan Rabindran
 
Monitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesMonitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesAjeet Singh Raina
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Thomas Chacko
 

Was ist angesagt? (20)

Docker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driverDocker Networking Tip - Macvlan driver
Docker Networking Tip - Macvlan driver
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Fluentd and docker monitoring
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoring
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
Container Monitoring with Sysdig
Container Monitoring with SysdigContainer Monitoring with Sysdig
Container Monitoring with Sysdig
 
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, DockerUnder the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
 
Docker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing optionsDocker Networking Tip - Load balancing options
Docker Networking Tip - Load balancing options
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for Docker
 
Project Atomic-Nulecule
Project Atomic-NuleculeProject Atomic-Nulecule
Project Atomic-Nulecule
 
Docker Security Paradigm
Docker Security ParadigmDocker Security Paradigm
Docker Security Paradigm
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Docker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker SwarmDocker Online Meetup #28: Production-Ready Docker Swarm
Docker Online Meetup #28: Production-Ready Docker Swarm
 
Docker toolbox
Docker toolboxDocker toolbox
Docker toolbox
 
Deep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm ModeDeep Dive into Docker Swarm Mode
Deep Dive into Docker Swarm Mode
 
Docker up and running
Docker up and runningDocker up and running
Docker up and running
 
Swarm docker bangalore_meetup
Swarm docker bangalore_meetupSwarm docker bangalore_meetup
Swarm docker bangalore_meetup
 
Monitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & MicroservicesMonitoring Dell Infrastructure using Docker & Microservices
Monitoring Dell Infrastructure using Docker & Microservices
 
Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview Docker Distributed application bundle & Stack - Overview
Docker Distributed application bundle & Stack - Overview
 

Ähnlich wie CoreOS Overview and Current Status

To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 
From 0 to a CoreOS Cluster in 60 minutes
From 0 to a CoreOS Clusterin 60 minutesFrom 0 to a CoreOS Clusterin 60 minutes
From 0 to a CoreOS Cluster in 60 minutesLuciano Afranllie Ruiz
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at NuxeoNuxeo
 
CoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux ContainersCoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux ContainersRamit Surana
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdRichard Lister
 
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...Jitendra Bafna
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Simon Storm
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesVishal Biyani
 
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02Derek Ashmore
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Patrick Chanezon
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesDmitry Lazarenko
 
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...Anant Corporation
 
Monitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECSMonitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECSAmazon Web Services
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesObjectRocket
 

Ähnlich wie CoreOS Overview and Current Status (20)

To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 
From 0 to a CoreOS Cluster in 60 minutes
From 0 to a CoreOS Clusterin 60 minutesFrom 0 to a CoreOS Clusterin 60 minutes
From 0 to a CoreOS Cluster in 60 minutes
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
CoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux ContainersCoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux Containers
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love Systemd
 
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...
MuleSoft Surat Virtual Meetup#35 - Setting up MuleSoft Runtime and Anypoint C...
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
 
Autosar Basics hand book_v1
Autosar Basics  hand book_v1Autosar Basics  hand book_v1
Autosar Basics hand book_v1
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. Kubernetes
 
2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro2015 05-06-elias weingaertner-docker-intro
2015 05-06-elias weingaertner-docker-intro
 
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
Apache Cassandra Lunch #41: Cassandra on Kubernetes - Docker/Kubernetes/Helm ...
 
Monitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECSMonitoring in Motion: Monitoring Containers and Amazon ECS
Monitoring in Motion: Monitoring Containers and Amazon ECS
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Demystifying kubernetes
Demystifying kubernetesDemystifying kubernetes
Demystifying kubernetes
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on Kubernetes
 

Mehr von Sreenivas Makam

GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage MeteringSreenivas Makam
 
GKE Tip Series how do i choose between gke standard, autopilot and cloud run
GKE Tip Series   how do i choose between gke standard, autopilot and cloud run GKE Tip Series   how do i choose between gke standard, autopilot and cloud run
GKE Tip Series how do i choose between gke standard, autopilot and cloud run Sreenivas Makam
 
Kubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystemKubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystemSreenivas Makam
 
Top 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKETop 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKESreenivas Makam
 
How Kubernetes helps Devops
How Kubernetes helps DevopsHow Kubernetes helps Devops
How Kubernetes helps DevopsSreenivas Makam
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking OverviewSreenivas Makam
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesSreenivas Makam
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudSreenivas Makam
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesSreenivas Makam
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumSreenivas Makam
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingSreenivas Makam
 

Mehr von Sreenivas Makam (13)

GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage Metering
 
GKE Tip Series how do i choose between gke standard, autopilot and cloud run
GKE Tip Series   how do i choose between gke standard, autopilot and cloud run GKE Tip Series   how do i choose between gke standard, autopilot and cloud run
GKE Tip Series how do i choose between gke standard, autopilot and cloud run
 
Kubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystemKubernetes design principles, patterns and ecosystem
Kubernetes design principles, patterns and ecosystem
 
My kubernetes toolkit
My kubernetes toolkitMy kubernetes toolkit
My kubernetes toolkit
 
Top 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKETop 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKE
 
How Kubernetes helps Devops
How Kubernetes helps DevopsHow Kubernetes helps Devops
How Kubernetes helps Devops
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Compare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloudCompare Docker deployment options in the public cloud
Compare Docker deployment options in the public cloud
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 
CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Docker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental NetworkingDocker Networking - Current Status and goals of Experimental Networking
Docker Networking - Current Status and goals of Experimental Networking
 

Kürzlich hochgeladen

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Kürzlich hochgeladen (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

CoreOS Overview and Current Status

  • 1. COREOS OVERVIEW AND CURRENT STATUS Presenter Name: Sreenivas Makam Presented at: Open source Meetup Bangalore Presentation Date: April 16, 2016
  • 2. About me • Senior Engineering Manager at Cisco Systems Data Center group • Personal blog can be found at https://sreeninet.wordpress.com/ and my hacky code at https://github.com/smakam • Author of “Mastering CoreOS” book, published on Feb 2016. (https://www.packtpub.com/netw orking-and-servers/mastering- coreos ) • You can reach me on LinkedIn at https://in.linkedin.com/in/sreeniva smakam, Twitter handle - @srmakam
  • 3. Container Optimized OS - Characteristics • All applications run as Containers on top of OS. • Base OS should be small and fast to bootup. • Services are managed by Init system. eg: Systemd • OS need to have auto-update strategy like web browsers. • Systems needs to be managed as a cluster rather than individual node. • Built-in support should be present for Service discovery, Container networking and Orchestration. • Examples – CoreOS, Rancher OS, Redhat Atomic, Ubuntu snappy, Mesos DCOS, VMWare Photon
  • 4. CoreOS • First Container optimized OS. First release was done in July 2013. • Linux based and based on concepts from ChromeOS. • OS is Security focused. • Auto Update OS with A/B partition. • OS is Open sourced. Along with OS, CoreOS has following components: – Systemd as Init system – Etcd as distributed database – Fleet as Cluster service scheduler – Flannel for Container networking – Docker, Rkt for Containers • Has commercial components like Tectonic, Quay. • CoreOS integrates well with Kubernetes
  • 5. CoreOS Architecture Kernel Systemd, cloud-init Etcd, fleet, flannel, update-service Docker, Rkt Docker Container Rkt Container Kubernetes Tectonic, Quay CoreOS Applications Orchestration Platform
  • 6. CoreOS Automatic Update • The CoreOS update mechanism is based on Google's open source Omaha protocol (https://code.google.com/p/omaha/) that is used in the Chrome browser. • Dual partition scheme is used to achieve automatic update and to handle upgrade related failures. • Critical CoreOS services to handle Upgrade are update-engine and locksmith service. • Etcd is used to serialize upgrades in a CoreOS cluster. • User can control upgrades using different schemes like etcd-lock, reboot, best effort.
  • 7. Cluster Architecture - Development • Single cluster to run critical services and application Containers. • Odd cluster size gives better fault tolerance. • Used for development purposes. • etcd is run in a separate node and application Containers run in Worker nodes. • Etcd in Worker nodes proxy to main etcd node. Cluster 1 Cluster 2 Picture from https://coreos.com/os/docs/latest/cluster-architectures.html
  • 8. Cluster architecture - Production Cluster 3 Fault Tolerance• This cluster architecture is suited for production • There is redundancy available for core services as well as for application Containers. • Services are scheduled based on node metadata(eg: services, worker) Picture from https://coreos.com/os/docs/latest/cluster-architectures.html
  • 9. CoreOS Release cycle • Alpha, Beta, and Stable are release channels within CoreOS. • CoreOS releases progress through each channel in this order: Alpha->Beta->Stable. • All releases get started as Alpha, but the promotion to Beta and Stable happens on the basis of testing. • The major version number (for example, 1000 in 1000.0.0) is the number of days from July 13, 2013, which was the CoreOS epoch. core@core-01 ~ $ cat /etc/os-release NAME=CoreOS ID=coreos VERSION=1000.0.0 VERSION_ID=1000.0.0 BUILD_ID=2016-03-27-0652 PRETTY_NAME="CoreOS 1000.0.0 (MoreOS)" ANSI_COLOR="1;32" HOME_URL="https://coreos.com/" BUG_REPORT_URL="https://github.com/coreos/bugs/issues" core@core-01 ~ $ uname -a Linux core-01 4.5.0-coreos-r1 #2 SMP Thu Apr 7 03:52:11 UTC 2016 x86_64 Intel(R) Core(TM) i7-4800MQ CPU @ 2.70 GHz GenuineIntel GNU/Linux
  • 10. Systemd • Systemd is an Init system used by CoreOS to start, stop, and manage processes. • Dependencies between services can be specified easily inside the unit files. • All processes inside a single Systemd unit run in 1 cgroup and this includes forked processes. • Systemd can monitor health of service and restart service if it dies. • Common Systemd unit types—service, socket, device, and mount.
  • 11. Systemd unit file example Fleet.service: [Unit] Description=fleet daemon After=etcd.service After=etcd2.service Wants=fleet.socket After=fleet.socket [Service] User=fleet Environment=GOMAXPROCS=1 ExecStart=/usr/bin/fleetd Restart=always RestartSec=10s [Install] WantedBy=multi-user.target ordering dependency Service restartability Unit grouping
  • 12. Systemd unit execution Hello1.service: [Unit] Description=My Service After=docker.service [Service] TimeoutStartSec=0 KillMode=none ExecStartPre=-/usr/bin/docker kill hello1 ExecStartPre=-/usr/bin/docker rm hello1 ExecStartPre=/usr/bin/docker pull busybox ExecStart=/usr/bin/docker run --name hello1 busybox /bin/sh -c "while true; do echo Hello World; sleep 1; done" Restart=always RestartSec=30s ExecStop=/usr/bin/docker stop hello1 [Install] WantedBy=multi-user.target Execute service: 1. Copy hello1.service as sudo to /etc/systemd/system. 2. Enable the service: sudo systemctl enable hello1.service 3. Start hello1.service: sudo systemctl start hello1.service Hello1.service Status: core@core-01 /etc/systemd/system $ systemctl status hello1.service ? hello1.service - My Service Loaded: loaded (/etc/systemd/system/hello1.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2016-04-04 15:38:29 UTC; 2min 38s ago Process: 1069 ExecStartPre=/usr/bin/docker pull busybox (code=exited, status=0/SUCCESS) Process: 1060 ExecStartPre=/usr/bin/docker rm hello1 (code=exited, status=1/FAILURE) Process: 961 ExecStartPre=/usr/bin/docker kill hello1 (code=exited, status=1/FAILURE) Main PID: 1093 (docker) Memory: 33.1M CPU: 634ms CGroup: /system.slice/hello1.service └─1093 /usr/bin/docker run --name hello1 busybox /bin/sh -c while true; do echo Hello World;... Apr 04 15:40:59 core-01 docker[1093]: Hello World
  • 13. etcd • Distributed key, value store used by CoreOS nodes. • Uses Raft consensus algorithm to maintain highly available cluster. • Etcd is used outside CoreOS by companies like Cloud foundry. • Fleet, Flannel, Kubernetes uses etcd to communicate configuration and monitoring data. • Etcd can be used for Service discovery. • Etcd exposes REST api and also provides etcdctl for CLI access.
  • 14. Etcd examples Member list: core@core-01 ~ $ etcdctl member list 156d6ef020d72caa: name=a4562fd1d8d346b79e80ca467d82b7ee peerURLs=http://172.17.8.101:2380 clientURLs=http://172.17.8.101:2379 2ba42fe58ee8dc90: name=d29b150786c04239937794f87985cd76 peerURLs=http://172.17.8.102:2380 clientURLs=http://172.17.8.102:2379 72ab4a0a6ba49052: name=7a895214d7274c0f8c362188c3bf8eb8 peerURLs=http://172.17.8.103:2380 clientURLs=http://172.17.8.103:2379 Set, get, delete example: core@core-01 ~ $ etcdctl set /message hello hello core@core-02 ~ $ etcdctl get /message Hello core@core-01 ~ $ etcdctl rm /message PrevNode.Value: hello Get all keys: core@core-01 ~ $ etcdctl ls / --recursive /coreos.com /coreos.com/updateengine /coreos.com/updateengine/rebootlock /coreos.com/updateengine/rebootlock/semaphore /message TTL expiry: core@core-01 ~ $ etcdctl set /expirymessage "I will expire soon" --ttl 30 I will expire soon core@core-02 ~ $ etcdctl get /expirymessage I will expire soon core@core-02 ~ $ etcdctl get /expirymessage Error: 100: Key not found (/expirymessage) [51952] Watch: Node 1: core@core-01 ~ $ etcdctl set /didichange "not changed" not changed core@core-01 ~ $ etcdctl get /didichange not changed core@core-01 ~ $ etcdctl watch /didichange –recursive ---- Node 2: core@core-02 ~ $ etcdctl set /didichange "changed" Changed ---- Node 1: [set] /didichange changed
  • 15. Fleet • Init system for the CoreOS cluster • Fleet uses etcd for communication across the cluster • Fleet was originally planned as Orchestrator. After Kubernetes took the role of Orchestrator, Fleet is used only for scheduling system services. For example, Kubernetes services are scheduled using Fleet. • Fleet is not under active development and is mostly under the maintenance mode. • Fleet service exposes REST api and CLI can be accessed using fleetctl.
  • 16. Fleet Architecture • One master Fleet engine is selected in the CoreOS cluster using etcd. • Fleet master talks to Fleet agents of each node and schedules the Jobs. • Fleet also takes care of Service high availability at cluster level. • Fleet global units gets scheduled on all nodes in the cluster. • Fleet can schedule units based on metadata onto the appropriate node in the cluster.
  • 17. Fleet global unit example helloglobals.service: [Unit] Description=My Service After=docker.service [Service] TimeoutStartSec=0 ExecStartPre=-/usr/bin/docker kill hello ExecStartPre=-/usr/bin/docker rm hello ExecStartPre=/usr/bin/docker pull busybox ExecStart=/usr/bin/docker run --name hello busybox /bin/sh -c "while true; do echo Hello World; sleep 1; d one" ExecStop=/usr/bin/docker stop hello [X-Fleet] Global=true Start Unit: fleetctl start helloglobal.service Fleet Status: core@core-01 ~ $ fleetctl list-units UNIT MACHINE ACTIVE SUB helloglobal.service 7a895214.../172.17.8.103 active running helloglobal.service a4562fd1.../172.17.8.101 active running helloglobal.service d29b1507.../172.17.8.102 active running Systemd status: core@core-01 ~ $ systemctl status helloglobal.service ? helloglobal.service - My Service Loaded: loaded (/run/fleet/units/helloglobal.service; linked- runtime; vendor preset: disabled) Active: active (running) since Mon 2016-04-04 17:28:17 UTC; 1min 44s ago Process: 7702 ExecStartPre=/usr/bin/docker pull busybox (code=exited, status=0/SUCCESS) Process: 7693 ExecStartPre=/usr/bin/docker rm hello (code=exited, status=1/FAILURE) Process: 7686 ExecStartPre=/usr/bin/docker kill hello (code=exited, status=1/FAILURE) Main PID: 7716 (docker) Memory: 9.4M CPU: 444ms CGroup: /system.slice/helloglobal.service └─7716 /usr/bin/docker run --name hello busybox /bin/sh -c while true; do echo Hello World; ...
  • 18. Flannel • Flannel uses an Overlay network to allow Containers across different hosts to talk to each other. • Both Docker and Rkt Containers in CoreOS uses Flannel to do Container networking. • Projects like Kubernetes use Flannel for Container networking. • Flannel can be implemented as a Container networking interface(CNI) plugin like shown in the diagram.
  • 19. Flannel Architecture Flannel Control path Flannel Data path • Flannel agent in each node communicate to each other using etcd. • Flannel agent of each node gets an individual subnet and Containers of that node gets IP address from the subnet. • Inter-host Container traffic gets encapsulated into either UDP or VXLAN by Flannel bridge of each node.
  • 20. Rkt • Rkt is the Container runtime developed by CoreOS. • CoreOS created Rkt to have a better security model for Containers and to have an industry standard. • Rkt uses the Application Container image (ACI) image format, which is according to the APPC specification. • Rkt does not have a daemon(Like Docker) and is managed by Systemd. • Rkt uses multiple stages to run Containers. This is done so that some stages can be swapped with other implementations. – First stage does Container image discovery and retrieval. – Second stage sets the Container runtime environment like filesystem, cgroups. – Third stage runs the Container.
  • 21. Rkt Examples Run Docker image as Rkt Container: core@core-02 ~ $ sudo rkt run --insecure-options=image --interactive docker://busybox image: using image from local store for image name coreos.com/rkt/stage1-coreos:1.2.1 image: remote fetching from URL "docker://busybox" Downloading sha256:385e281300c: [==============================] 676 KB/676 KB Downloading sha256:a3ed95caeb0: [==============================] 32 B/32 B networking: loading networks from /etc/rkt/net.d networking: loading network default with type ptp / # List pods: core@core-02 ~ $ rkt list pods UUID APP IMAGE NAME STATE CREATED STARTED NETWORK S 6bafd510 busybox registry-1.docker.io/library/busybox:latest running 6 minutes ago 6 minutes ago default :ip4=172.16.28.2 List images: core@core-02 ~ $ rkt image list ID NAME IMPORT TIME LAST USED SIZE LATEST sha512-c0ab44d87499 coreos.com/rkt/stage1-coreos:1.2.1 10 minutes ago 10 minutes ago 152MiB false sha512-cdb74a334f97 registry-1.docker.io/library/busybox:latest 10 minutes ago 10 minutes ago 2.4MiB true Rkt Container in Systemd: [Unit] Description=nginx [Service] # Resource limits CPUShares=512 MemoryLimit=1G # Prefetch the image ExecStartPre=/usr/bin/rkt fetch --insecure-skip- verify docker://nginx ExecStart=/usr/bin/rkt run --insecure-skip-verify --private-net --port=80-tcp:8080 --volume volume-var-cache- nginx,kind=host,source=/ home/co re docker://nginx KillMode=mixed Restart=always
  • 22. CoreOS Installation • CoreOS can be installed in baremetal using ISO image or PXE boot. • Works with majority of Cloud providers – AWS, Google cloud, DigitalOcean, Azure. • Works with baremetal cloud like Packet. • CoreOS can be deployed on Openstack cloud. • Vagrant based installation can be used for development purposes. • Base configuration of CoreOS node can be provided using cloud-config YAML file. Cloud-init program in CoreOS system takes care of setting up configuration. • For Cloud providers, System cloud-config is embedded in base image and user cloud-config is provided by the user.
  • 23. Cloud-config sample #cloud-config coreos: etcd2: #generate a new token for each unique cluster from https://discovery.etcd.io/new discovery: https://discovery.etcd.io/99ce5d499df6a4a9c004e8596687ccc7 # multi-region and multi-cloud deployments need to use $public_ipv4 advertise-client-urls: http://$public_ipv4:2379 initial-advertise-peer-urls: http://$private_ipv4:2380 # listen on both the official ports and the legacy ports # legacy ports can be omitted if your application doesn't depend on them listen-client-urls: http://0.0.0.0:2379,http://0.0.0.0:4001 listen-peer-urls: http://$private_ipv4:2380,http://$private_ipv4:7001 fleet: public-ip: $public_ipv4 units: # To use etcd2, comment out the above service and uncomment these # Note: this requires a release that contains etcd2 - name: etcd2.service command: start - name: fleet.service command: start Dynamic node discovery Etcd environment variables Fleet environment variable Services to be started automatically
  • 24. CoreOS Ecosystem • Supports Docker for running Containers. • Integrates nicely with Kubernetes. • Mesos can be run on top of CoreOS. • Kubernetes can be used for orchestrating Docker and Rkt Containers. • CoreOS can be used with Openstack.
  • 25. Tectonic – GIFEE(Google Infrastructure for everyone else) Tectonic Distributed Trusted computing • At the firmware level, the customer key can be embedded, and this allows customers to verify all the software running in the system. • Secure keys embedded in the firmware can verify the bootloader as well as CoreOS. • Containers such as Rkt can be verified with their image signature. • Logs can be made tamper-proof using the TPM hardware module embedded in the CPU motherboard. • Tectonic integrates CoreOS’s open source components and Kubernetes along with some integration software to provide Enterprise ready microservices infrastructure platform. • With Tectonic, CoreOS is integrating their other commercial offerings such as CoreUpdate, Quay repository, and Enterprise CoreOS into Tectonic. • Tectonic will support both Docker and Rkt Container runtime. Distributed Trusted computing(Image from https://tectonic.com/) Tectonic Software Components
  • 26. Newer projects • Ignition – Better cloud-config. • Clair – Container scanning service for vulnerabilities • DEX – Identity management • Openstack deployment on Tectonic(https://tectonic.com/blog/openstac k-and-kubernetes-come-together.html)
  • 27. References • CoreOS docs - https://coreos.com/os/docs/latest/ • DigitalOcean CoreOS tutorials (https://www.digitalocean.com/ community/tags/coreos?type=tutorials ) • CoreOS Github page(https://github.com/coreos) • Mastering CoreOS book(https://www.packtpub.com/networking- and-servers/mastering-coreos)
  • 28. DEMO!

Hinweis der Redaktion

  1. Microsoft Confidential
  2. Microsoft Confidential