ESXI安装CoreOS(第二版)
目的
学习安装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(第二版)相关推荐
- 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法
目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...
- ESXi Arm Edition version 1.11更新,及安装Win11 Arm版
根据 ESXi Arm Edition | VMware Flings,带来了一些bug fix,支持vTPM, virtual Secure Boot和加密虚拟机等,并且增加了Windows的VMw ...
- 【slam十四讲第二版】【课本例题代码向】【第九讲~后端Ⅰ】【安装Meshlab】【BAL数据集格式】【ceres求解BA】【g2o求解BA】
[slam十四讲第二版][课本例题代码向][第九讲~后端Ⅰ][安装Meshlab][BAL数据集格式][ceres求解BA][g2o求解BA] 0 前言 1 安装Meshlab: 三维几何网格处理 2 ...
- Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装
Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装 一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...
- 《CATIA V5 从入门到精通(第二版)》——第1章 CATIA V5R20概述 1.1 CATIA软件介绍及安装...
本节书摘来自异步社区<CATIA V5 从入门到精通(第二版)>一书中的第1章,第1.1节,作者: 高飞 , 李昕 更多章节内容可以访问云栖社区"异步社区"公众号查看. ...
- 视觉SLAM十四讲(第二版)环境安装心得体会
前言 将高博的视觉SLAM14讲(第二版)看完后,也将里面所有的代码都跑了一遍,在安装环境的时候遇到了无数的坑.为了后来的人能够更加快速上手SLAM,现将书中环境安装心得记录如下. 环境安装 1. 安 ...
- Slam十四讲(第二版):1、习题
Github:https://github.com/gaoxiang12/slambook2(对应的是第二版) 第一讲 齐次线性方程组的表现形式为:Ax=0:讲解链接:https://jingyan. ...
- 整理对应_JSP第二版课后习题答案【侵权联系我删除】
JSP第二版课后习题下载:https://download.csdn.net/download/weixin_42859280/11265785 JSP第二版课后习题答案下载:https://down ...
- Python 程序设计(第二版)董付国_清华大学出版社_习题答案与分析【针对8.4及其之前的】
更多精彩内容:(没有设置公众号获得,麻烦动动小手~谢谢) CSDN下载:Python编程无师自通电子书,[美]科里·奥尔索夫(Cory Althoff)-文档类-CSDN下载 百度云:链接:https ...
最新文章
- 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
- 利用iptables来配置linux禁止所有端口登陆和开放指定端口
- 超详细!各种内部排序算法的比较
- [云炬创业基础笔记]第一章创业环境测试11
- 程序员-真实学习之路
- MySQL与OLAP:分析型SQL查询最佳实践探索
- 跟小静学MVC3[03]--相关语法特性小补习
- Julia: map,reduce,mapreduce
- 理解virt res shr之间的关系 - linux
- 解决用联通看不了B站等问题
- TDengine 常见问题解答
- 云桌面系统功能参数(备忘)
- 上班迟到致失业,罪魁祸首在于这个 App 的 Bug!
- 计算机网络——交换机的生成树协议STP
- 软件安装和点亮流水灯
- 基于51单片机六车道智能交通灯设计(仿真+源程序+PCB+论文)
- 多项式朴素贝叶斯分类器_多项式朴素贝叶斯分类器的主题预测
- 计算鬼成像学习笔记二:二阶关联函数探究
- 浏览器前缀/ css3 渐变 /
- java基础代码题(终)