目的
学习安装coreos集群
三台虚拟机,分别命名core1,core2,core3

安装之前的准备
一、准备用户登录用的公钥证书,比如常用的xshell软件,在“工具”菜单中,创建RSA密钥对,备用。
二、找一台机器,比如本人的CentOS7(10.3.8.234),安装Config transpiler,它是把Container Linux Configs格式转换成Ignition格式的工具:
yum install git make
cd ~
git clone https://github.com/coreos/container-linux-config-transpiler.git
cd container-linux-config-transpiler
make //生成bin/ct脚本
cd bin

vi core1.yml

passwd:users:- name: coressh_authorized_keys:- ssh-rsa AAAAB3NzaC1yc2EAAAAB......(前面xshell软件生成的用户公钥) groups:- sudo- dockernetworkd:units:- name: static.networkcontents: |[Match]Name=ens192[Network]Address=10.3.8.101/24Gateway=10.3.8.254DNS=10.1.4.80storage:files:- path: /etc/hostnamefilesystem: rootmode: 0644contents:inline: core1- path: /etc/hostsfilesystem: rootmode: 0644contents:inline: |127.0.0.1  localhost::1        localhost10.3.8.101 core110.3.8.102 core210.3.8.103 core3systemd:units:- name: "settimezone.service"enabled: truecontents: |[Unit]Description=Set the timezone[Service]Type=oneshotRemainAfterExit=yesExecStart=/usr/bin/timedatectl set-timezone Asia/Shanghai[Install]WantedBy=multi-user.targetetcd:version:                     "3.3.12"name:                        "core1"advertise_client_urls:       "http://10.3.8.101:2379"initial_advertise_peer_urls:  "http://10.3.8.101:2380"listen_client_urls:          "http://0.0.0.0:2379"listen_peer_urls:           "http://10.3.8.101:2380"initial_cluster:             "core1=http://10.3.8.101:2380,core2=http://10.3.8.102:2380,core3=http://10.3.8.103:2380"

将core1.yml复制为core2.yml和core3.yml,每个文件修改其中的主机名和IP,共6处。
将yml格式转换成json格式:
./ct < core1.yml > core1.json
./ct < core2.yml > core2.json
./ct < core3.yml > core3.json
转换为base64编码格式:
base64 -w0 core1.json > core1.b64
base64 -w0 core2.json > core2.b64
base64 -w0 core3.json > core3.b64

安装CoreOS
下载vmware版本的CoreOS:
https://stable.release.core-os.net/amd64-usr/current/coreos_production_vmware_ova.ova
登录http://ESXI-IP,创建虚拟机,创建类型选择“从OVF或OVA文件部署虚拟机”。
到第五步要注意下:

CoreOS config dat encoding填base64,CoreOS config data就是之前创建的core1.b64文件内容。完成后就可以启动虚拟机了,其它两台虚拟机一样的操作。

也可以在第四步时,取消“自动启动电源”,就是创建好虚拟机后不要自动启动。再把虚拟机的vmx文件下载过来编辑,在末尾添加两行:
guestinfo.coreos.config.data.encoding = “base64”
guestinfo.coreos.config.data = “复制core1.b64文件内容到此”
然后再将此修改过的vmx覆盖回原文件,启动虚拟机,它会自动完成初始化配置。

但如果,CoreOS不是第一次启动,则要在进入系统后,执行如下操作:
touch /boot/coreos/first_boot
first_boot文件让内核认为是第一次启动,它会使vmx文件内的guestinfo.coreos.config.data生效。

测试,登录任意一台成员:

HOST_1=http://10.3.8.101
HOST_2=http://10.3.8.102
HOST_3=http://10.3.8.103
ENDPOINTS=$HOST_1:2379,$HOST_2:2379,$HOST_3:2379export ETCDCTL_API=2
etcdctl --endpoints=$ENDPOINTS cluster-health
或
export ETCDCTL_API=3
etcdctl member list
etcdctl --endpoints=$ENDPOINTS endpoint health
http://10.3.8.101:2379 is healthy: successfully committed proposal: took = 2.787885ms
http://10.3.8.103:2379 is healthy: successfully committed proposal: took = 3.158167ms
http://10.3.8.102:2379 is healthy: successfully committed proposal: took = 2.069713ms

官方文档如下:
https://coreos.com/os/docs/latest/booting-on-vmware.html

配置TLS
配置TLS有两种方法,一是在yml文件中配置,在CoreOS启动之前初始化TLS,二是在CoreOS启动之后手工调整TLS配置,官方文档就是后者。

方法一:编写yml文件
cat core1.yml(未改动的部分没有列出)

systemd:units:- name: "etcd-member.service"dropins:- name: 30-certs.confcontents: |[Service]Environment="ETCD_CERT_FILE=/etc/ssl/certs/etcd.pem"Environment="ETCD_KEY_FILE=/etc/ssl/certs/etcd-key.pem"Environment="ETCD_TRUSTED_CA_FILE=/etc/ssl/certs/ca.pem"Environment="ETCD_CLIENT_CERT_AUTH=true"Environment="ETCD_PEER_CERT_FILE=/etc/ssl/certs/etcd.pem"Environment="ETCD_PEER_KEY_FILE=/etc/ssl/certs/etcd-key.pem"Environment="ETCD_PEER_TRUSTED_CA_FILE=/etc/ssl/certs/ca.pem"Environment="ETCD_PEER_CLIENT_CERT_AUTH=true"etcd:version:                  "3.3.12"name:                   "core1"advertise_client_urls:       "https://10.3.8.101:2379"listen_client_urls:          "https://10.3.8.101:2379,https://127.0.0.1:2379"listen_peer_urls:           "https://10.3.8.101:2380"initial_advertise_peer_urls:  "https://10.3.8.101:2380"initial_cluster:             "core1=https://10.3.8.101:2380,core2=https://10.3.8.102:2380,core3=https://10.3.8.103:2380"initial_cluster_state:        "new"

将core1.yml复制为core2.yml和core3.yml,每个文件修改其中的主机名和IP,etcd那一段要写具体的IP,因为证书里是指定IP的,不要用0.0.0.0这样的表达式。
同前面步骤一样,将yml格式转换成json格式,再转换成base64格式,写入虚拟机的vmx文件中。如果CoreOS不是第一次启动,则touch /boot/coreos/first_boot,再重启,所做的修改才生效。

初始化CoreOS完成后,将相关证书放入/etc/ssl/certs目录内,其它目录不行,否则报错:
etcdmain: open /etc/ssl/etcd/etcd.pem: no such file or directory

检查集群,登录任意一台成员:
export ETCDCTL_CERT_FILE=/etc/ssl/certs/etcd.pem
export ETCDCTL_KEY_FILE=/etc/ssl/certs/etcd-key.pem
export ETCDCTL_CA_FILE=/etc/ssl/certs/ca.pem
export ETCDCTL_ENDPOINTS=https://10.3.8.101:2379,https://10.3.8.102:2379,https://10.3.8.103:2379

export ETCDCTL_API=2
etcdctl member list
etcdctl cluster-health

export ETCDCTL_API=3
etcdctl member list
etcdctl endpoint health

测试https访问:
curl --cacert /etc/ssl/etcd/ca.pem --cert /etc/ssl/etcd/etcd.pem --key /etc/ssl/etcd/etcd-key.pem https://10.3.8.102:2379/v2/stats/self
curl --cacert /etc/ssl/certs/ca.pem --cert /etc/ssl/certs/etcd.pem --key /etc/ssl/certs/etcd-key.pem https://10.3.8.102:2379/v2/stats/self
{“name”:“core2”,“id”:“298d850fbf49f913”,“state”:“StateFollower”,“startTime”:“2019-03-09T04:49:25.627515833Z”,“leaderInfo”:{“leader”:“de7b18977457deb8”,“uptime”:“1m3.536353176s”,“startTime”:“2019-03-09T04:49:26.416629082Z”},“recvAppendRequestCnt”:27,“sendAppendRequestCnt”:0}
这里curl能正常读取/etc/ssl/etcd/内的证书。

方法二:手工调整TLS
参考官方文档:https://coreos.com/etcd/docs/latest/etcd-live-http-to-https-migration.html
根据文档步骤去做遇到两个问题:
一是证书目录问题:etcdmain: open /etc/ssl/etcd/etcd.pem: no such file or directory
二是更新etcd client URLs问题:
修改/etc/systemd/system/etcd-member.service.d/20-clct-etcd-member.conf文件,部分内容如下:
–advertise-client-urls=“https://10.3.8.101:2379,http://0.0.0.0:4001”
–listen-client-urls=“http://0.0.0.0:2379,http://0.0.0.0:4001”
–listen-peer-urls=“http://0.0.0.0:2380,http://0.0.0.0:4001” \

重启服务
systemctl daemon-reload
systemctl restart etcd-member
失败,journalctl -xe显示:
etcdmain: listen tcp 0.0.0.0:4001: bind: address already in use
若修改listen-peer-urls这一行,去掉http://0.0.0.0:4001则能顺利启动。
官方文档未做详细测试,实在累。

ESXI安装CoreOS(第二版)相关推荐

  1. 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法

    目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...

  2. ESXi Arm Edition version 1.11更新,及安装Win11 Arm版

    根据 ESXi Arm Edition | VMware Flings,带来了一些bug fix,支持vTPM, virtual Secure Boot和加密虚拟机等,并且增加了Windows的VMw ...

  3. 【slam十四讲第二版】【课本例题代码向】【第九讲~后端Ⅰ】【安装Meshlab】【BAL数据集格式】【ceres求解BA】【g2o求解BA】

    [slam十四讲第二版][课本例题代码向][第九讲~后端Ⅰ][安装Meshlab][BAL数据集格式][ceres求解BA][g2o求解BA] 0 前言 1 安装Meshlab: 三维几何网格处理 2 ...

  4. Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装

    Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装  一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...

  5. 《CATIA V5 从入门到精通(第二版)》——第1章 CATIA V5R20概述 1.1 CATIA软件介绍及安装...

    本节书摘来自异步社区<CATIA V5 从入门到精通(第二版)>一书中的第1章,第1.1节,作者: 高飞 , 李昕 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...

  6. 视觉SLAM十四讲(第二版)环境安装心得体会

    前言 将高博的视觉SLAM14讲(第二版)看完后,也将里面所有的代码都跑了一遍,在安装环境的时候遇到了无数的坑.为了后来的人能够更加快速上手SLAM,现将书中环境安装心得记录如下. 环境安装 1. 安 ...

  7. Slam十四讲(第二版):1、习题

    Github:https://github.com/gaoxiang12/slambook2(对应的是第二版) 第一讲 齐次线性方程组的表现形式为:Ax=0:讲解链接:https://jingyan. ...

  8. 整理对应_JSP第二版课后习题答案【侵权联系我删除】

    JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785 JSP第二版课后习题答案下载:https://down ...

  9. Python 程序设计(第二版)董付国_清华大学出版社_习题答案与分析【针对8.4及其之前的】

    更多精彩内容:(没有设置公众号获得,麻烦动动小手~谢谢) CSDN下载:Python编程无师自通电子书,[美]科里·奥尔索夫(Cory Althoff)-文档类-CSDN下载 百度云:链接:https ...

最新文章

  1. 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
  2. 利用iptables来配置linux禁止所有端口登陆和开放指定端口
  3. 超详细!各种内部排序算法的比较
  4. [云炬创业基础笔记]第一章创业环境测试11
  5. 程序员-真实学习之路
  6. MySQL与OLAP:分析型SQL查询最佳实践探索
  7. 跟小静学MVC3[03]--相关语法特性小补习
  8. Julia: map,reduce,mapreduce
  9. 理解virt res shr之间的关系 - linux
  10. 解决用联通看不了B站等问题
  11. TDengine 常见问题解答
  12. 云桌面系统功能参数(备忘)
  13. 上班迟到致失业,罪魁祸首在于这个 App 的 Bug!
  14. 计算机网络——交换机的生成树协议STP
  15. 软件安装和点亮流水灯
  16. 基于51单片机六车道智能交通灯设计(仿真+源程序+PCB+论文)
  17. 多项式朴素贝叶斯分类器_多项式朴素贝叶斯分类器的主题预测
  18. 计算鬼成像学习笔记二:二阶关联函数探究
  19. 浏览器前缀/ css3 渐变 /
  20. java基础代码题(终)

热门文章

  1. 非最大值抑制(NMS)(一)
  2. ROS 控制实际工业机器人(Staubli tx90)(二)
  3. 帝国cms7.5自动提取关键字 tag标签插件
  4. 创建物料凭证 BAPI_GOODSMVT_CREATE
  5. tensorflow keras模型加载错误
  6. CI(CodeIgniter)框架入门
  7. 数据清洗:Numpy
  8. 基于Echarts的销售企业经营数据分析-价格范围
  9. Ypai windows部署小白也可以哦
  10. 美丽的清晨,美好的开始