带有Vagrant的CoreOS群集无法正确启动/配置etcd

时间:2018-04-02 04:27:38

标签: kubernetes coreos etcd

我的最终目标是在3节点CoreOS集群上运行Kubernetes(如果有人有更好的建议,我全心全意:在这个阶段,我认为CoreOS完全浪费了我的时间)

我已经开始关注CoreOS guide to run a Vagrant cluster(我甚至拥有CoreOs in Action book并且也没有多少帮助) - 我已经获得了新的discovery token并进行了修改那里描述的user-dataconfig.rb文件:

#cloud-config

---
coreos:
  etcd2:
    discovery: https://discovery.etcd.io/7b9a3e994a14c2bf530ed88676e3fc97

$ cat config.rb
# Size of the CoreOS cluster created by Vagrant
$num_instances = 3
$update_channel = "stable"

其余部分与最初的coreos-vagrant存储库一样。

首次启动时,似乎etcd未作为服务启动;用systemctl启动它似乎可以实现它,但它却没有发现它的同行:

core@core-01 ~ $ etcdctl member list
8e9e05c52164694d: name=4adff068c464446a8423e9b9f7c28711 peerURLs=http://localhost:2380 clientURLs=http://localhost:2379 isLeader=true

所有其他三个Vagrant虚拟机也一样。

在我看来,修改后的user-data未被拾取,或者以某种方式忽略了发现令牌。

我一直在谷歌上搜索,但似乎没有出现。

我发现的主要困难是,几乎所有围绕CoreOS / etcd的指令都指向这些YAML文件,然后状态一个必须使用ct来生成"真正的"配置:但他们并没有真正展示如何在正在运行的VM上执行此操作,或者如何更改正在运行的配置。

几个问题:

1)"正确的方式"得到三个虚拟机' etcd开始寻找对方? 阅读the guide here真的没那么有用。

这三个虚拟机位于“仅限主机”位置。网络:

core@core-01 ~ $ ip address show
...
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:76:a6:cf brd ff:ff:ff:ff:ff:ff
    inet 172.17.8.101/16 brd 172.17.255.255 scope global eth1

(其他两个在102103

2)是否有更好的&#34; (对于某些定义&#34;更好&#34;)在3个VirtualBox虚拟机上运行Kubernetes集群的方法?

在我看来,CoreOS试图为了自己的利益而过于聪明:过去10年来我一直在使用各种版本的Linux +并且让etcd集群找到对方的情况令人沮丧地难以实现。

我正在运行Ubuntu 17.10(好吧,一切顺利,很快就会是18.04 LTS)和Virtualbox 5.2.8。

提前致谢!

1 个答案:

答案 0 :(得分:5)

不幸的是,您使用的文档目前已过时。现在ETCD version 3用作Kubernetes数据存储。它提供Ignition(VirtualBox Provider(默认)):

  

使用VirtualBox提供程序进行Vagrant(默认)时,Ignition   用于配置机器。

1。安装vagrant-ignition插件(以防万一在使用coreos-vagrant repo中的默认Vagrantfile时未自动安装此插件):

git clone https://github.com/coreos/vagrant-ignition
cd vagrant-ignition
gem build vagrant-ignition.gemspec
vagrant plugin install vagrant-ignition-0.0.3.gem

2。安装ct

3。克隆coreos-vagrant回购:

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

4. :创建config.rb以启动三个CoreOS VM:

cp config.rb.sample config.rb
sed -i 's/$num_instances=1/$num_instances=3/g' config.rb

5. 获取etcd发现令牌并将其放入cl.conf

discovery_token=$(curl -s https://discovery.etcd.io/new\?size\=3)
sed -i "s|https://discovery.etcd.io/<token>|$discovery_token|g" cl.conf

6。使用config transpiler将点火配置写入config.ign

ct --platform=vagrant-virtualbox < cl.conf > config.ign

7. :创建etcd群集:

vagrant up

ETCD群集准备就绪:

core@core-01 ~ $ etcdctl member list
3655a3141d6f953b: name=core-01 peerURLs=http://172.17.8.101:2380 clientURLs=http://172.17.8.101:2379 isLeader=false
951a7a7a97c94116: name=core-02 peerURLs=http://172.17.8.102:2380 clientURLs=http://172.17.8.102:2379 isLeader=true
fd056871037fdb55: name=core-03 peerURLs=http://172.17.8.103:2380 clientURLs=http://172.17.8.103:2379 isLeader=false
相关问题