CoreOS主要包含以下一些东西:

(1)最小的OS:kernel+systemd

(2)使用Docker运行应用

(3)使用fleet管理集群

(4)使用etcd实现服务发现:一个分布式的K/V存储引擎存储配置数据

下载vagrant的coreos配置文件

$ git clone https://github.com/coreos/coreos-vagrant.git

$vagrant up

$ vagrant status

Current machine states:

core-01                   running (virtualbox)

core-02                   running (virtualbox)

core-03                   running (virtualbox)

$ ssh-add ~/.vagrant.d/insecure_private_key

Identity added: /Users/yy/.vagrant.d/insecure_private_key (/Users/yy/.vagrant.d/insecure_private_key)

$ vagrant ssh core-01

Last login: Sun Sep  7 16:23:31 2014 from 10.0.2.2

CoreOS (beta)

core@core-01 ~ $ fleetctl list-machines

MACHINE           IP          METADATA

542a4130... 172.17.8.101     -

bcb90abf...  172.17.8.102     -

e6a8eaa9...  172.17.8.103     -

读写etcd

core@core-01 ~ $ etcdctl set first-etcd-key "Hello World"

Hello World

core@core-01 ~ $ etcdctl get first-etcd-key

Hello World

在core-02上可以读到first-etcd-key对应的值:

core@core-02 ~ $ etcdctl get first-etcd-key

Hello World

也可以直接提供的API读取相应的key:

core@core-02 ~ $ curl -L http://127.0.0.1:4001/v1/keys/first-etcd-key

{"action":"get","key":"/first-etcd-key","value":"Hello World","index":2264}

使用fleetctl管理服务

core@core-01 ~ $ cat hello.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; done"

ExecStop=/usr/bin/docker stop hello

core@core-01 ~ $ fleetctl load hello.service

Job hello.service loaded on 542a4130.../172.17.8.101

core@core-01 ~ $ fleetctl start hello.service

Job hello.service launched on 542a4130.../172.17.8.101

查看服务状态

core@core-01 ~ $ fleetctl status hello.service

● hello.service - My Service

Loaded: loaded (/run/fleet/units/hello.service; linked-runtime)

Active: active (running) since Mon 2014-09-08 04:21:13 UTC; 1min 25s ago

Process: 1117 ExecStartPre=/usr/bin/docker pull busybox (code=exited, status=0/SUCCESS)

Process: 1108 ExecStartPre=/usr/bin/docker rm hello (code=exited, status=1/FAILURE)

Process: 1046 ExecStartPre=/usr/bin/docker kill hello (code=exited, status=1/FAILURE)

Main PID: 1185 (docker)

CGroup: /system.slice/hello.service

└─1185 /usr/bin/docker run --name hello busybox /bin/sh -c while true; do echo Hello World; sleep 1; done

Sep 08 04:22:28 core-01 docker[1185]: Hello World

Sep 08 04:22:29 core-01 docker[1185]: Hello World

Sep 08 04:22:30 core-01 docker[1185]: Hello World

Sep 08 04:22:31 core-01 docker[1185]: Hello World

Sep 08 04:22:32 core-01 docker[1185]: Hello World

Sep 08 04:22:33 core-01 docker[1185]: Hello World

Sep 08 04:22:34 core-01 docker[1185]: Hello World

Sep 08 04:22:35 core-01 docker[1185]: Hello World

Sep 08 04:22:36 core-01 docker[1185]: Hello World

Sep 08 04:22:37 core-01 docker[1185]: Hello World

core@core-01 ~ $ docker ps

CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS               NAMES

fa7084105f19        busybox:buildroot-2014.02   /bin/sh -c 'while tr   2 minutes ago       Up 2 minutes                            hello

在另一个coreos查看服务状态

$ vagrant ssh core-02 -- -A

Last login: Mon Sep  8 04:35:40 2014 from 10.0.2.2

CoreOS (beta)

core@core-02 ~ $ fleetctl list-units

UNIT            DSTATE              TMACHINE                STATE          MACHINE                         ACTIVE

hello.service       launched     542a4130.../172.17.8.101    launched     542a4130.../172.17.8.101    active

core@core-02 ~ $ fleetctl status hello.service

● hello.service - My Service

Loaded: loaded (/run/fleet/units/hello.service; linked-runtime)

Active: active (running) since Mon 2014-09-08 04:21:13 UTC; 15min ago

Process: 1117 ExecStartPre=/usr/bin/docker pull busybox (code=exited, status=0/SUCCESS)

Process: 1108 ExecStartPre=/usr/bin/docker rm hello (code=exited, status=1/FAILURE)

Process: 1046 ExecStartPre=/usr/bin/docker kill hello (code=exited, status=1/FAILURE)

Main PID: 1185 (docker)

CGroup: /system.slice/hello.service

└─1185 /usr/bin/docker run --name hello busybox /bin/sh -c while true; do echo Hello World; sleep 1; done

Sep 08 04:36:20 core-01 docker[1185]: Hello World

Sep 08 04:36:21 core-01 docker[1185]: Hello World

Sep 08 04:36:22 core-01 docker[1185]: Hello World

Sep 08 04:36:23 core-01 docker[1185]: Hello World

Sep 08 04:36:24 core-01 docker[1185]: Hello World

Sep 08 04:36:25 core-01 docker[1185]: Hello World

Sep 08 04:36:26 core-01 docker[1185]: Hello World

Sep 08 04:36:27 core-01 docker[1185]: Hello World

Sep 08 04:36:28 core-01 docker[1185]: Hello World

Sep 08 04:36:29 core-01 docker[1185]: Hello World

core@core-02 ~ $ fleetctl destroy hello.service

Destroyed hello.service

主要参考

[1] https://coreos.com/docs/quickstart/

作者:YY哥 
出处:http://www.cnblogs.com/hustcat/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

CoreOS实践(1)—CoreOS初体验的更多相关文章

  1. [CoreOS 转载] CoreOS实践指南(一)

    转载:http://www.csdn.net/article/2014-12-29/2823356 摘要:CoreOS是一个采用了高度精简的系统内核及外围定制的操作系统.ThoughtWorks的软件 ...

  2. [CoreOS 转载] CoreOS实践指南(七):Docker容器管理服务

    转载:http://www.csdn.net/article/2015-02-11/2823925 摘要:当Docker还名不见经传的时候,CoreOS创始人Alex就预见了这个项目的价值,并将其做为 ...

  3. [CoreOS 转载] CoreOS实践指南(五):分布式数据存储Etcd(上)

    转载:http://www.csdn.net/article/2015-01-22/2823659 摘要:在“漫步云端:CoreOS实践指南”系列的前几篇,分别介绍了如何架设CoreOS集群,系统服务 ...

  4. [CoreOS 转载] CoreOS实践指南(四):集群的指挥所Fleet

    转载:http://www.csdn.net/article/2015-01-14/2823554/2 摘要:CoreOS是采用了高度精简的系统内核及外围定制的操作系统.ThoughtWorks的软件 ...

  5. [CoreOS 转载] CoreOS实践指南(三):系统服务管家Systemd

    转载:http://www.csdn.net/article/2015-01-08/2823477 摘要:CoreOS是采用了高度精简的系统内核及外围定制的操作系统.ThoughtWorks的软件工程 ...

  6. [CoreOS 转载]CoreOS实践指南(二):架设CoreOS集群

    转载:http://www.csdn.net/article/2015-01-04/2823399 摘要:CoreOS是一个采用了高度精简的系统内核及外围定制的操作系统.ThoughtWorks的软件 ...

  7. node.js 初体验

    node.js 初体验 2011-10-31 22:56 by 聂微东, 174545 阅读, 118 评论, 收藏, 编辑 PS: ~ 此篇文章的进阶内容在为<Nodejs初阶之express ...

  8. Linux之初体验

    预备作业03--我的Linux初体验 学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 一开始以为这个项目很简单,以往也在自己的笔记本上看教程安装过软件, ...

  9. 蚂蚁 RPC 框架 SOFA-RPC 初体验

    前言 最近蚂蚁金服开源了分布式框架 SOFA,楼主写了一个 demo,体验了一下 SOFA 的功能,SOFA 完全兼容 SpringBoot(当然 Dubbo 也是可以兼容的). 项目地址:Alipa ...

随机推荐

  1. c#开发Mongo笔记第五篇

    现在增删查改算是都完成了,但是查询算是有点不完美的,相信现在用juqeryeasyui这一类的插件的人应该也不少吧,这样的话前台展示需要JSON格式的数据, 好在mogno驱动提供toJson()的函 ...

  2. ios调用第三方程序打开文件,以及第三方调用自己的APP打开文件

    1.自己的APP调用第三方打开文件 主要是使用  UIDocumentInteractionController  类   并实现 UIDocumentInteractionControllerDel ...

  3. js 图片预览

    图片预览 $('#pac_recipe').change(function() { var imgsrc = ''; ]) { //chrome firefox imgsrc = window.URL ...

  4. 关于把A表中的数据复制到B表中(整理)

    如果A,B两个表中没有重复数据且表结构一样可以直接 insert into B select * from A 如果结构不一样可以 insert into B(字段列表),select 字段列表 fr ...

  5. js-特效部分学习-拖拽效果

    一.客户区大小ClientWidth和ClientHeight <style> #box { width: 200px; height: 200px; background-color: ...

  6. Android Studio 中配置强大的版本管理系统

    1. 安装Git/CVS 第一步首先你需要安装Git/CVS等版本管理工具,这个请自行百度 2. 新建一个本地空仓库 新建一个仓库叫GitTest 仓库现在是空的什么都没有 找到路径,然后复制路径(这 ...

  7. Android中EditText样式修改 聚焦光标、背景

    在Android开发中,根据项目的需求,需要定制一些特殊的样式,例如:使用EditText时,聚焦时的背景及光标图片使用自定义而非android系统默认的.这两天,在项目中涉及此需求,现记录如下: 首 ...

  8. SQL Server 处理树结构数据的一个示例

    没多少技术含量,在简单的系统里应用问题不大: 解决的问题是: 1.树结构数据的表设计: 2.对任意一个节点,找到他所有的上级节点 3.对任意一个节点,找到他所有的下级节点 这里的部分SQL是同事给的, ...

  9. solr与.net系列课程(一)solr的安装与配置

    不久之前开发了一个项目,需要用到solr,因为所以在开始再网上查找资料,但是发现大部分的资料都是很片面的,要么就是只讲解solr如何安装的,要么就是只讲解solr的某一个部分的,而且很多都是资料都是一 ...

  10. ajax异步请求Response.Redirect重定向

    一个ajax异步请求报错->捕获异常->重定向错误提示页面.  一个简单的流程 结果一直搞不定.重定向无效.各种百度之. 后来突然想起 ajax的请求是不能在后台重定向的. 如果硬要重定向 ...