Learning CoreOS
()
About this ebook
About This Book
- Understand the features of CoreOS and learn to administrate and secure a CoreOS environment
- Develop, test, and deploy cloud services and applications more quickly and efficiently inside lightweight containers using CoreOS
- This is a complete tutorial on CoreOS, which is the preferred OS for cloud computing as it contains components that facilitate cloud management
Who This Book Is For
This book is for cloud or enterprise administrators and application developers who would like to gain knowledge about CoreOS to deploy a cloud application or micro-services on a cluster of cloud servers. It is also aimed at administrators with basic networking experience. You do not need to have any knowledge of CoreOS.
What You Will Learn
- Understand the benefits of CoreOS as a cloud orchestration platform
- Learn about lightweight containers and various container frameworks such as Docker and RKT in CoreOS
- Manage services and containers across cluster using Fleet and systemd
- Set up a CoreOS environment using Vagrant
- Create and manage CoreOS clusters
- Discover the service parameters using etcd
- Find out about chaining services running on the cluster using Flannel / Rudder and Weave
- Create a virtual tenant network and service chaining using OVS
In Detail
CoreOS is an open source operating system developed upon the Linux kernel. The rise of CoreOS is directly related to the rise of Docker (a Linux container management system). It is a minimal operating system layer and takes a different approach to automating the deployment of containers. The major difference between CoreOS and other Linux distributions is that CoreOS was designed to deploy hundreds of servers. CoreOS immensely helps the users to create systems, which are easy to scale and manage, making life easier for all, be it developer, QA, or deployer.
This book is all about setting up, deploying, and using CoreOS to manage clusters and clouds. It will help you understand what CoreOS is and its benefits as a cloud orchestration platform. First, we’ll show you how to set up a simple CoreOS instance with single node in the cluster and how to run a Docker container inside the CoreOS instance. Next, you’ll be introduced to Fleet and systemd, and will deploy and distribute Docker services across different nodes in cluster using Fleet.
Later, you’ll be briefed about running services in a cluster with constraints, publishing the services already running on the cluster to new services, and making your services interact with each other. We conclude by teaching you about advanced container networking. By the end of the book, you will know the salient features of CoreOS and will be able to deploy, administrate, and secure a CoreOS environment.
Style and approach
This practical guide covers the basics and advanced topics related to CoreOS and lightweight containers. The topics are covered in an easy-to-follow manner with each feature explained in detail, beginning with a brief overview and followed by an explanation of its corresponding configuration files.
Related to Learning CoreOS
Related ebooks
Practical OneOps Rating: 0 out of 5 stars0 ratingsDocker Networking Cookbook Rating: 0 out of 5 stars0 ratingsMonitoring Docker Rating: 0 out of 5 stars0 ratingsNative Docker Clustering with Swarm Rating: 0 out of 5 stars0 ratingsCentOS High Availability Rating: 5 out of 5 stars5/5OpenStack Essentials - Second Edition Rating: 0 out of 5 stars0 ratingsCentOS High Performance Rating: 0 out of 5 stars0 ratingsDeveloping with Docker Rating: 5 out of 5 stars5/5Nginx Essentials Rating: 0 out of 5 stars0 ratingsOpenStack Orchestration Rating: 5 out of 5 stars5/5Learning Windows Server Containers Rating: 0 out of 5 stars0 ratingsLearning Docker Rating: 5 out of 5 stars5/5Implementing OpenShift Rating: 0 out of 5 stars0 ratingsExtending Docker Rating: 0 out of 5 stars0 ratingsLearning Node.js for Mobile Application Development Rating: 0 out of 5 stars0 ratingsMastering OpenStack Rating: 1 out of 5 stars1/5SELinux System Administration - Second Edition Rating: 0 out of 5 stars0 ratingsOpenJDK Cookbook Rating: 0 out of 5 stars0 ratingsLinux Programming Tools Unveiled Rating: 0 out of 5 stars0 ratingsPerl Scripting for Windows Security: Live Response, Forensic Analysis, and Monitoring Rating: 0 out of 5 stars0 ratingsInstant Java Password and Authentication Security Rating: 0 out of 5 stars0 ratingsRestlet in Action: Developing RESTful web APIs in Java Rating: 0 out of 5 stars0 ratingsJava with TDD from the Beginning Rating: 0 out of 5 stars0 ratingsSoftware Architecture Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsImplementing Splunk - Second Edition Rating: 0 out of 5 stars0 ratingsMastering Google App Engine Rating: 0 out of 5 stars0 ratingsNagios Core Administration Cookbook - Second Edition Rating: 0 out of 5 stars0 ratingsJava 8 to 21: Explore and work with the cutting-edge features of Java 21 (English Edition) Rating: 0 out of 5 stars0 ratingsTesting with JUnit Rating: 0 out of 5 stars0 ratingsUnix / Linux FAQ: with Tips to Face Interviews Rating: 0 out of 5 stars0 ratings
System Administration For You
Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratingsLinux for Beginners: Linux Command Line, Linux Programming and Linux Operating System Rating: 4 out of 5 stars4/5CompTIA A+ Complete Review Guide: Core 1 Exam 220-1101 and Core 2 Exam 220-1102 Rating: 5 out of 5 stars5/5Cybersecurity: The Beginner's Guide: A comprehensive guide to getting started in cybersecurity Rating: 5 out of 5 stars5/5Building a Plex Server with Raspberry Pi Rating: 0 out of 5 stars0 ratingsNetworking for System Administrators: IT Mastery, #5 Rating: 5 out of 5 stars5/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Mastering Windows PowerShell Scripting Rating: 4 out of 5 stars4/5Learn Windows PowerShell in a Month of Lunches Rating: 0 out of 5 stars0 ratingsWork with the Command-line: To Manage Files and Directories in Ubuntu Rating: 5 out of 5 stars5/5PowerShell: A Comprehensive Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Bash Command Line Pro Tips Rating: 5 out of 5 stars5/5Git Essentials Rating: 4 out of 5 stars4/5Practical Data Analysis Rating: 4 out of 5 stars4/5Linux Bible Rating: 0 out of 5 stars0 ratingsThe Complete Powershell Training for Beginners Rating: 0 out of 5 stars0 ratingsImprove your skills with Google Sheets: Professional training Rating: 0 out of 5 stars0 ratingsLearn Git in a Month of Lunches Rating: 0 out of 5 stars0 ratingsLearn PowerShell Scripting in a Month of Lunches Rating: 0 out of 5 stars0 ratingsWordpress 2023 A Beginners Guide : Design Your Own Website With WordPress 2023 Rating: 0 out of 5 stars0 ratingsLinux Command-Line Tips & Tricks Rating: 0 out of 5 stars0 ratingse-Discovery For Dummies Rating: 0 out of 5 stars0 ratingsMastering ServiceNow - Second Edition Rating: 3 out of 5 stars3/5Mastering Linux Shell Scripting Rating: 4 out of 5 stars4/5
Reviews for Learning CoreOS
0 ratings0 reviews
Book preview
Learning CoreOS - S Kingston Smiler.
Table of Contents
Learning CoreOS
Credits
About the Authors
About the Reviewer
www.PacktPub.com
eBooks, discount offers, and more
Why subscribe?
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the color images of this book
Errata
Piracy
Questions
1. CoreOS, Yet Another Linux Distro?
Introduction to CoreOS
CoreOS versus other Linux distributions
CoreOS high-level architecture
Service discovery
etcd
Container management
Linux Container
cgroups
Namespace
Chroot
Docker
Docker versus LXC
Rocket
CoreOS cluster management:
systemd
fleet
CoreOS and OpenStack
Summary
2. Setting Up Your CoreOS Environment
Installing GIT
Installing VirtualBox
Introduction to Vagrant
Installing Vagrant
Vagrant configuration files
Cloud-config
The config.rb configuration file
Starting a CoreOS VM using Vagrant
Setting up CoreOS on VMware vSphere
Installing VMware vSphere Client
Introduction to Docker
Image
Container
Volumes
Links
Installing Docker
Creating a sample Docker image using Docker File
Docker File
Pulling the Docker image from Docker Hub
Running Docker Image
Summary
3. Creating Your CoreOS Cluster and Managing the Cluster
Introduction to clustering
The why and the benefits of clustering
CoreOS clustering
Cluster discovery
Static discovery
etcd discovery
DNS discovery
systemd
Service unit files
Starting and stopping a service
fleet
Architectural overview
Engine
Agent
fleetctl
Standard (local) and global units
Unit file options for fleet
Instantiating the service unit in the cluster
Recovering from node failure
Summary
4. Managing Services with User-Defined Constraints
Introduction to service constraints
Predefined constraints using metadata
Service level affinity/anti-affinity
Node-level affinity
High availability
Summary
5. Discovering Services Running in a Cluster
Introduction and necessity of service discovery
Mechanism for service discovery
Operations of etcd
Operations using etcdctl
etcd write using etcdctl
etcd read using etcdctl
etcd watch using etcdctl
Example of etcd using etcdctl
Operations using cURL
etcd read using curl
etcd write using curl
etcd watch using curl
Example using curl
HAProxy and service discovery
Summary
6. Service Chaining and Networking Across Services
Introduction to and necessity of service chaining
Introduction to Docker networking
Container–Container communication
Docker0 bridge and veth pair
Using Link
Using common network stack
Container to CoreOS host communication
Host networking
docker0 bridge
Container to CoreOS outside world communication
Host networking
Port mapping
Container – Container communication in different CoreOS nodes
Introduction to Weave
Introduction to Flannel/Rudder
Installation
Setting up Weave
Container startup
Integrating Flannel with CoreOS
Summary
7. Creating a Virtual Tenant Network and Service Chaining Using OVS
Introduction to OVS
OVS architectural overview
Advantages of using OVS in CoreOS
Introduction to overlay and underlay networks
Introduction to network virtualization
OpenFlow support in OVS
OpenFlow switch
OpenFlow controller
OpenFlow channel
Running OVS in CoreOS
Attaching docker0 bridge to OVS
Configuration in CoreOS Instance 1
Configurations during the instantiation of a CoreOS node 1 in a cluster
Configurations during the creation of a container for CoreOS Instance 1
Configuration in CoreOS Instance 2
Configurations during the instantiation of CoreOS node 2 in a cluster
Configurations during the creation of a container for CoreOS Instance 2
Attaching container's veth interface to OVS
Configuration in CoreOS Instance 1
Configurations during the instantiation of a CoreOS node in a cluster
Configurations during the creation of the first container for a tenant
Configurations during the creation of subsequent containers for a tenant
Configuration in CoreOS Instance 2
Configurations during the instantiation of a CoreOS node in a cluster
Configurations during the creation of the first container for a tenant
Configurations during the creation of subsequent containers for a tenant
Looping issue
Summary
8. What Next?
Container security
Update and patches – CoreUpdate
Dex
sysdig
Competitive container orchestration mechanism
Kubernetes
Kubernetes master
Kubernetes nodes
Kubernetes pods
Kubernetes service
CoreOS and Kubernetes
Apache-Mesos
Mesos master
Mesos agent
ZooKeeper
Mesos frameworks
Swarm
Docker data volume management
Introduction to Flocker
Flocker control services
Flocker agents
Flocker plugin for Docker
Open Container Project
Summary
Index
Learning CoreOS
Learning CoreOS
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2016
Production reference: 1160316
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78588-830-4
www.packtpub.com
Credits
Authors
Kingston Smiler. S
Shantanu Agrawal
Reviewer
Aneesh Kumar
Acquisition Editor
Divya Poojari
Content Development Editor
Shali Deeraj
Technical Editor
Mohit Hassija
Copy Editors
Dipti Mankame
Jonathan Todd
Project Coordinator
Kinjal Bari
Proofreader
Safis Editing
Indexer
Priya Sane
Graphics
Kirk D'Penha
Production Coordinator
Shantanu N. Zagade
Cover Work
Shantanu N. Zagade
About the Authors
Kingston Smiler. S is a seasoned professional with 12 years of experience in software development and presales, encompassing wide range of skill set, roles, and industry verticals. He has solid expertise in data communication networking and software-based switching and routing solutions, and virtualization platforms such as OpenStack, OpenDaylight controller, Docker Containers, and CoreOS. He is currently working as an advisor and technical consultant for networking companies in the development of Layer2 and Layer3 IP protocols.
He also has working experience in building IoT sensor networks with IoT OSes such as RIOT and Contiki; SoCs such as Arduino, Raspberry Pi, and Intel Galileo; and IoT protocols such as 802.14.5 (Zigbee), 6lowpan, RPL, CoAP, and MQTT. He is interested in building small-scale robots using Arduino and ROS Robotics platforms.
Active in various networking standard bodies such as IETF, IEEE, and ONF, Kingston has proposed two drafts in TRILL WG and one draft in MPLS WG of IETF. With the current surge in SDN, virtualization, and NFV, his primary focus is towards these areas. He completed a bachelor of engineering degree in computer science from Madras University.
Kingston is also the author of OpenFlow Cookbook, Packt Publishing.
First and foremost, I would like to thank the lord to give me immense confidence and energy to start and complete this book successfully. I want to thank my kids, mother, brother, sister, and all my other family members for their support and encouragement. Thanks to my coauthor Shantanu Agrawal who helped me finish the book on time. Thanks to Shali and Divya for their reviews and helping me to finish this book despite their busy schedule. Special thanks to my wife for her patience and support in bringing up this book as most part of the book was written on weekends, at night, and during vacations.
Shantanu Agrawal has over 15 years of experience in the telecom industry working in systems having high transaction rates with scalable architectures. He has extensive experience of consulting for solutions, designing, and implementing high-performing and highly available software. He has exposure to the complete life cycle of the product development and deployment challenges. During his journey, he has worked on different hardware platforms and operating systems, such as proprietary UNIX-based hardware, embedded systems with real-time operating systems, Linux, Solaris, and so on. He has experience in the core network elements and protocols used in GSM/UMTS/LTE networks. He graduated from IIT BTU and did post-graduation from BITS Pilani.
I would thank my family for allowing me to squeeze their time for this book and for being understanding. I would also want to thank my coauthor Kingston Smiler for driving this to completion and for his excellent contributions.
About the Reviewer
Aneesh Kumar is a principal engineer and Cloud evangelist at Pramati Technologies. He is a developer, hacker, and DevOps. Aneesh brings with him over 7 years of in-depth experience in designing and building complex Cloud architecture and web platforms. He's passionate about open source technologies and cloud infrastructures at scale.
www.PacktPub.com
eBooks, discount offers, and more
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
Why subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Preface
As more and more applications are moving towards the cloud with server virtualization, there is a clear necessity to deploy the user applications and services very fast and make them reliable with assured SLA by deploying the services in a right set of servers. This becomes more complex when these services are dynamic in nature, which results in making these services autoprovisioned and autoscaled over a set of nodes. The orchestration of the user application is not limited to deploy the services in the right set of server or virtual machines rather to be extended to provide network connectivity across these services to provide Infrastructure as a Service (IaaS). Compute, network, and storage are the three main resources to be managed by the cloud provider in order to provide (IaaS). Currently, there are various mechanisms to handle these requirements in more abstract fashion. There are multiple cloud orchestration frameworks, which can manage the compute, storage, and networking resources. OpenStack, Cloud Stack, and VMware vSphere are some of the cloud platforms that orchestrate these resource pools and provide IaaS.
The server virtualization provided by a Virtual Machine (VM) has its own overhead of running a separate instance of the operating system on every virtual machine. This brings down the number of VM instances that can be run on the server, which heavily impacts the operational expense. As Linux namespace, containers technologies, such as docker and rkt, are gaining its popularity; one more level of server virtualization can be introduced by deploying the application services inside a container rather than VM However, there is a necessity of an orchestration and clustering framework for the containers or dockers for deploying the services in the cluster, the discovery of the service and service parameters, providing network across these containers or dockers, and so on. CoreOS is developed for this purpose.
CoreOS is a light-weight cloud service orchestration operating system based on Google Chrome. CoreOS is developed primarily for orchestrating applications/services over a cluster of nodes. CoreOS extends the existing services provided by Linux to work for a distributed cluster and not limited to a single node.
What this book covers
Chapter 1, CoreOS, Yet Another Linux Distro?, explains the basics of containers, dockers, and high-level architecture of CoreOS.
Chapter 2, Setting Up Your CoreOS Environment, teaches you how to set up and run CoreOS with a single machine using Vagrant and VirtualBox. It also covers how to create and run docker images and get familiarized with the important configuration files and their contents.
Chapter 3, Creating Your CoreOS Cluster and Managing the Cluster, teaches you how to set up the CoreOS cluster with multiple machines. You will also learn how machines are discovered and services are scheduled on those machines. Also, you will learn about starting and stopping a service using Fleet.
Chapter 4, Managing Services with User-Defined Constraints, gives an introduction about service constraints, which helps to deploy services on suitable members.
Chapter 5, Discovering Services Running in Cluster, explains the need and mechanism for the discovery of services running on a cluster. Also, you will learn about two important tools, which are used widely for service discovery: etcdctl and curl.
Chapter 6, Service Chaining and Networking Across Services, explains the importance of the container communications and the various possibilities provided by CoreOS and docker to provide the communication.
Chapter 7, Creating a Virtual Tenant Network and Service Chaining Using OVS, explains the importance of OVS in container communications and the various advantages provided by OVS. The chapter details how the services deployed by different customers/tenants across the CoreOS