CoreOS部署及应用
来源:互联网 发布:大数据知识框架 编辑:程序博客网 时间:2024/06/05 07:42
简介
CoreOS是基于Chrome OS修改的极简化Linux发行版本(CoreOS只需要114MB的内存就能运行,启动时占用的内存比普通的Linux服务器要少40%。),顶层提供分布式数据存储和系统管理工具,能够扩展并管理庞大的云计算服务器设施,用其官网概括理念为“A new way to think about servers”、“CoreOS is Linux for massive server deployments”,表示一个新思维方式思考未来服务器大规模部署的Linux服务器操作系统。CoreOS中的所有应用都完全在Docker容器中运行,操作系统本身会定期自动更新。
CoreOS具有以下几点特性:
1. Linux内核,Linux运行所需存在两个ROOT分区,一个被用作启动分区,一个被用作更新分区更新分区在更新完成后,自动重新启动系统,当前机器不需要从负载集群中移除,为了保证其它应用程序不被打断,会通过Linux cgroup限制更新过程中的磁盘、网络等IO使用。
2. systemd,作为默认系统和服务管理器
3. root分区被设计成只读,用以保证数据的一致性和更新可用
4. CoreOS很明智使用Docker作为容器管理器用以构建、发布应用,从这个层面来看,一个应用其实就是一个容器。
5. etcd组件负责服务发现和配置共享,采用Raft分布式一致性协议算法,承担起,组件之间服务通信使用。很自然的,容器(Container)之间应用、服务的伸缩,就显得很简单了。其基因层面支持集群特性,当然,你也可以解读为云环境的支持。
部署
测试主机环境为CentOS release 6.5 (Final),内核为2.6.32-431.el6.x86_64。我们
1.安装依赖软件
1. Virtualbox-5.0,为vagrant提供虚拟化支持
2. vagrant_1.8.1,ruby开发,使用Virtualbox等提供虚拟化支持,可跨平台部署
3. coreos-vagrant,为vagrant提供的coreos镜像
2.安装Virtualbox-5.0
cd /etc/yum.repos.dwget http://download.virtualbox.org/virtualbox/rpm/el/virtualbox.reporpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpmyum install gcc make patch dkms qt libgomp kernel-headers kernel-devel fontforge binutils glibc-headers glibc-devel -ycd cd /usr/src/kernels/#若不添加软连接,安装会报错ln -s 3.10.0-327.10.1.el7.x86_64 3.10.0-327.el7.x86_64export KERN_DIR=/usr/src/kernels/3.10.0-327.el7.x86_64yum install VirtualBox-5.0
3.安装vagrant
wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.rpmrpm -ivh vagrant_1.8.1_x86_64.rpm
4.快速搭建CoreOS集群
git clone https://github.com/coreos/coreos-vagrant/cd coreos-vagrantcp user-data.sample user-data#获取新tokencurl https://discovery.etcd.io/new#把获取的token放到user-data文件中vim user-data#cloud-config---coreos: etcd2: discovery: https://discovery.etcd.io/2fd5c65dea14ae8b9417bde39c794af4$update_channel='stable'#修改集群启动虚拟机个数,默认为1cp config.rb.sample config.rbvim config.rb$num_instances=1
5.启动集群
[root@test]# vagrant upBringing machine 'core-01' up with 'virtualbox' provider...==> core-01: Box 'coreos-stable' could not be found. Attempting to find and install... core-01: Box Provider: virtualbox core-01: Box Version: >= 0==> core-01: Loading metadata for box 'https://storage.googleapis.com/stable.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json' core-01: URL: https://storage.googleapis.com/stable.release.core-os.net/amd64-usr/current/coreos_production_vagrant.json==> core-01: Adding box 'coreos-stable' (v835.13.0) for provider: virtualbox core-01: Downloading: http://stable.release.core-os.net/amd64-usr/835.13.0/coreos_production_vagrant.box core-01: Calculating and comparing box checksum...==> core-01: Successfully added box 'coreos-stable' (v835.13.0) for 'virtualbox'!==> core-01: Importing base box 'coreos-stable'...==> core-01: Matching MAC address for NAT networking...==> core-01: Checking if box 'coreos-stable' is up to date...==> core-01: Setting the name of the VM: coreos-vagrant_core-01_1456463236858_46275==> core-01: Clearing any previously set network interfaces...==> core-01: Preparing network interfaces based on configuration... core-01: Adapter 1: nat core-01: Adapter 2: hostonly==> core-01: Forwarding ports... core-01: 22 (guest) => 2222 (host) (adapter 1)==> core-01: Running 'pre-boot' VM customizations...==> core-01: Booting VM...==> core-01: Waiting for machine to boot. This may take a few minutes... core-01: SSH address: 127.0.0.1:2222 core-01: SSH username: core core-01: SSH auth method: private key==> core-01: Machine booted and ready!==> core-01: Setting hostname...==> core-01: Configuring and enabling network interfaces...==> core-01: Running provisioner: file...==> core-01: Running provisioner: shell... core-01: Running: inline script
6.进入coreos
[root@test]# vagrant sshCoreOS stable (835.13.0)
注意:我曾在虚拟机为centos系统上搭建,启动vagrant后登陆vagrant ssh报错connecttimeout。后来使用物理机为centos系统且cpu支持虚拟化,vagrant ssh登陆成功。
应用
模拟在CoreOS中通过docker一个容器,容器的环境为centos,在centos上运行应用。
1.docker查找centos镜像
core@core-01 ~ $ docker search centosNAME DESCRIPTION STARS OFFICIAL AUTOMATEDcentos The official build of CentOS. 1960 [OK] jdeathe/centos-ssh CentOS-6 6.7 x86_64 / SCL/EPEL/IUS Repos /... 15 [OK]jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 13 [OK]million12/centos-supervisor Base CentOS-7 with supervisord launcher, h... 9 [OK]blalor/centos Bare-bones base CentOS 6.5 image 8 [OK]nimmis/java-centos This is docker images of CentOS 7 with dif... 7 [OK]torusware/speedus-centos Always updated official CentOS docker imag... 7 [OK]centos/mariadb55-centos7 3 [OK]nathonfowlie/centos-jre Latest CentOS image with the JRE pre-insta... 3 [OK]nickistre/centos-lamp LAMP on centos setup 3 [OK]consol/sakuli-centos-xfce Sakuli end-2-end testing and monitoring co... 2 [OK]darksheer/centos Base Centos Image -- Updated hourly 1 [OK]softvisio/centos Centos 1 [OK]lighthopper/orientdb-centos A Dockerfile for creating an OrientDB imag... 1 [OK]yajo/centos-epel CentOS with EPEL and fully updated 1 [OK]layerworx/centos CentOS container with etcd, etcdctl, confd... 1 [OK]feduxorg/centos-postgresql Centos Image with postgres 1 [OK]timhughes/centos Centos with systemd installed and running 0 [OK]lighthopper/openjdk-centos A Dockerfile for creating an OpenJDK image... 0 [OK]blacklabelops/centos CentOS Base Image! Built and Updates Daily! 0 [OK]grayzone/centos auto build for centos. 0 [OK]jsmigel/centos-epel Docker base image of CentOS w/ EPEL installed 0 [OK]ustclug/centos USTC centos 0 [OK]januswel/centos yum update-ed CentOS image 0 [OK]ericuni/centos centos dev 0 [OK]
2.docker拉取centos镜像
core@core-01 ~ $ docker pull centos Using default tag: latestlatest: Pulling from library/centosfa5be2806d4c: Pull complete b4af4261cb15: Pull complete 5d358abc5d9c: Pull complete 2933d50b9f77: Pull complete Digest: sha256:1272ae53bac7bf054dd209a0b4a8629bcc39526c2a767427c7639b630a224a9eStatus: Downloaded newer image for centos:latest
3.运行应用,如打印hello,CoreOS
core@core-01 ~ $ docker run -i -t centos echo "hello,CoreOS"hello,CoreOScore@core-01 ~ $ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES93de17ef4729 centos "echo hello,CoreOS" 5 seconds ago Exited (0) 5 seconds ago boring_lumierec2e5c93b92a2 centos "/bin/bash" 2 days ago Exited (0) 2 days ago high_sammet
总结
通过以上只是对CoreOS有了一个简单的了解,但是要管理CoreOS集群及docker容器,我们还需要详细了解Etcd、Fleet等其他工具。另外本文中讲到利用vagrant搭建虚拟化环境,也可以应用到日常工作中搭建测试环境及其他方面。
- CoreOS部署及应用
- Coreos 安装及配置
- 安装部署 CoreOS + Kubernetes 3
- 安装部署 CoreOS + Kubernetes 1
- 安装部署 CoreOS + Kubernetes 2
- Spark部署及应用
- Svnmailer部署及应用
- 部署及更新应用
- Svnmailer部署及应用
- GlassFish 部署及应用入门
- tomcat的部署及应用
- Hadoop部署及基本应用
- weblogic 配置及应用部署
- LEMP架构及应用部署
- 手把手教你在CoreOS部署一个WordPress程序
- 基于Vagrant CoreOS的kubernetes一键部署
- CoreOS有状态应用管理的框架--Operator详解
- weblogic创建数据源及部署应用
- centos7 部署svn服务器
- Zookeeper安装部署
- cocoa pods 安装教程
- RGB颜色对照表
- servlet&&jsp
- CoreOS部署及应用
- 【趣味数学】不使用第三个变量交换两变量的值(推理过程)
- Node.js模块系统
- acm算法分类
- 交叉编译 PPPoE 和 PPP
- PAT-1027 打印沙漏
- 算法导论第三版习题7.1
- Node.js 函数
- 前言