CoreOS安装挖坑

缘由

最近在云平台中架设了三台节点的CoreOS集群,虽然对于很多云平台和虚拟化管理平台,官方都提供了安装脚本,但由于我所使用的云平台的一些原因,我无法选择使用官方的云平台部署脚本,所以本次纪录,是纪录直接在虚拟机中安装CoreOS的过程,理论上安装步骤适用于裸机安装。遇到了一些坑,特此记录,希望对初次接触CoreOS的童鞋有所借鉴和帮助。

步骤 & 坑

第一步 : 下载系统安装的ISO文件

你可能会觉得这一步很简单,但是,我不得不说,这个过程我花费了最多的时间。

由于官方的镜像下载源被伟大的GFW墙了,所以我无法直接下载这个ISO!

解决过程:我尝试使用迅雷下载,发现没速度,于是找同学拿了个某雷的VIP账号,把镜像下载下来了,速度奇慢

注:目前这个ISO下载地址似乎可以直接访问了CoreOS ISO

第二步:通过ISO引导,进入LiveCD

第三步:SSH到LiveCD环境中

虽然这一步不是必须的,但我觉得,这一步是必须的!因为你如果你不SSH到LiveCD中,编写安装配置文件config.yaml的时候非常麻烦,比如,你要添加SSH-Key,你不可能一个一个字符敲进去,所以最好的方法当然是在SSH终端上直接拷贝。

:从系统上看来,SSHD服务是开着的,我链接了老半天都连不了,排查了很久才发现,在CoreOS中,和其他Linux发行版不一样,它的SSHD的PermitRootLogin默认是no的,禁止了Root登陆,所以需要改了。

配置SSH的过程

cd /etc/ssh
mv sshd_config{,.bak}  #你不能直接编辑,因为这个文件是/usr/share/ssh/ssh_config的软链接,而/usr的整个分区,是只读的
cat sshd_config.bak > sshd_config
vim sshd_config
#...
PermitRootLogin yes  #加入这一句
systemctl restart sshd
sudo passwd root

然后就可以用ssh上去了。

第四步:编写初始化配置

填写cloud-config的配置,在官方有说明,按照自己的需求来就行,在本次的实验中,这一步当然也少不了坑。

按照网上或者官方的教程,你可能会看到类似于下面这样的例子(我就是用这个的):

#cloud-config
hostname: coreos01
coreos:
        units:
                - name: etcd2.service
                  command: start
                - name: fleet.service
                  command: start
        etcd2:
          discovery: https://discovery.etcd.io/cb33f38c16bead3a376be9bfc706987
          advertise-client-urls: http://$private_ipv4:2379,http://$private_ipv4:4001
          initial-advertise-peer-urls: http://$private_ipv4:2380
          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:
          metadata: role=coreos01
users:
        - name: core
          ssh-authorized-keys:
                - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9Q...== KeyExample
        - groups:
               - sudo
                - docker

然而安装完之后才发现,etcd集群是失败的。经过排查,才发现etcd侦听的地址全部都是127.0.0.1

所以我果断看配置文件cat /run/systemd/system/etcd2.service/20-*,恍然大悟。

:在安装前配置cloud-config(cloud-config.yaml)的时候,如果要使用$private_ipv4或者其他$public_ipv4之类的变量的时候,要确保这些变量是存在的(一开始我以为CoreOS自动添加的,教程都那样写),一个方法是,你可以把环境变量写到/etc/environment中。

第五步:安装

执行安装命令:

coreos-install -d /dev/sda -c cloud-config.yaml

由于在安装过程中,系统会从官方下载更新包,如果如我现在所看到的那样,官方的镜像站是可以直接访问的,那么你的安装过程可能很顺利。然而当时我安装的时候,镜像站是访问不了的,所以,这个坑,非GFW莫属。当然解决方法也是很简单。

:由于官方镜像站点被墙,安装过程中无法下载更新包。所以:

1、用某雷(VIP)或者翻墙之类的方法下载镜像

2、找到安装过程中需要下载的更新包,URL路径可以在安装脚本中找到,vim /usr/bin/coreos-install,当然还有一个更好的方式是,执行安装的时候用sh -x /usr/bin/coreos-install -d /dev/sda -c /cloud-config.yaml这样就可以看到安装的过程中脚本在哪一步停住了,比如我看到的是脚本一直停在下载下面的两个文件的步骤:

http://stable.release.core-os.net/amd64-usr/899.13.0/coreos_production_image.bin.bz2

http://stable.release.core-os.net/amd64-usr/899.13.0/coreos_production_image.bin.bz2.sig

3、用某雷(VIP)或者翻墙把两个文件下载下来,自己建立HTTP服务器,然后在里面简历一个899.13.0目录,并把文件放进去,供安装脚本下载。

4、执行安装,并指定从自己的http服务器下载更新包

coreos-install -d /dev/sda -c cloud-config.yaml -b http://192.168.1.1

:从VPS下载更新包,又传到内网HTTP服务器上,数据损坏,重新下一个,安装成功 T_T。

总结

折腾一番之后,总算安装成功,有了一个继续折腾的平台。

总体感觉,CoreOS的设计理念是很好的,尤其是集群和精简这一点,在搭配CoreOS的几大重量级应用(fleet、etcd、Rkt等)之后,相对于传统的Linux发行版,在数据中心或者微服务架构中,简直是完爆了,我之后在测试的CoreOS上面开启docker发现其运行起来比在CentOS7运行快很多,不知道是错觉还是错觉或者是错觉...特地也在某云买了一台虚拟机来玩CoreOS。但是!由于CoreOS相对来说还是比较新的东西,所以在行业上用得比较少,尤其是国内,所以学习资料、系统架构案例和问题疑难解决方案等资料在网络上都比较少,另一方面,由于CoreOS大部分时候注重大体架构,细节上比较少关注,所以对于用户而言,会有很多小坑(体验颇深)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,570评论 25 707
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,420评论 15 147
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • CoreOS为世界的集装箱基础设施提供动力 轻量级Linux操作系统,专为群集部署而设计,为您的关键应用程序提供自...
    再出发Brave阅读 1,512评论 0 0
  • 虚心接受别人的好是一种智慧,坦然面对自己过去的SB是一种勇敢,直损是一次重生~
    最爱的桐嘉阅读 203评论 0 0