【发布时间】:2017-02-06 05:18:23
【问题描述】:
我正在尝试使用https://github.com/coreos/coreos-kubernetes/tree/master/multi-node/generic 的脚本在我家中的真实(非虚拟)coreos 服务器上安装带有 rkt 的 kuberentes,但我有一些问题。
- 我的 etcd2 正在使用 tls 密钥,我在脚本中看不到可以定义证书所在位置的任何位置。
- 我可以为
ADVERTISE_IP和CONTROLLER_ENDPOINT提供域而不是IP 吗? - 当我尝试手动安装 kubernetes 时,我需要启动 rkt 服务 api。它没有在文档中说明它需要在这里,是否意味着如果我使用这些脚本就不需要它?还是只是文件中缺少的东西?
谢谢!
更新
Rob 非常感谢您的回复。我对etcd2不够清楚。我已经在我的 coreos 服务器上安装并正确配置了 etcd2 tls。所以我在 controller-install.sh 文件中配置了我的 etcd 服务器:
export ETCD_ENDPOINTS="https://coreos-2.tux-in.com:2379,https://coreos-3.tux-in.com:2379"
但是当我运行controller-install.sh 脚本时,它会返回并重复以下输出:
Waiting for etcd...
Trying: https://coreos-2.tux-in.com:2379
Trying: https://coreos-3.tux-in.com:2379
Trying: https://coreos-2.tux-in.com:2379
Trying: https://coreos-3.tux-in.com:2379
...
所以我猜这是因为我没有在控制器脚本中定义与 etcd 相关的 tls 证书,这就是它陷入这种混乱的原因。
在我的 macbook pro 笔记本电脑上,我配置了以下别名:
alias myetcdctl="~/apps/etcd-v3.0.8-darwin-amd64/etcdctl --endpoint=https://coreos-2.tux-in.com:2379 --ca-file=/Users/ufk/Projects/coreos/tux-in/etcd/certs/certs-names/ca.pem --cert-file=/Users/ufk/Projects/coreos/tux-in/etcd/certs/certs-names/etcd1.pem --key-file=/Users/ufk/Projects/coreos/tux-in/etcd/certs/certs-names/etcd1-key.pem --timeout=10s"
所以当我运行myetcdctl member list 时,我得到:
8832ce6a269a7dac: name=ccff826d5f564c67abf35467306f80a0 peerURLs=https://coreos-3.tux-in.com:2380 clientURLs=https://coreos-3.tux-in.com:2379 isLeader=true
a2c0ac9708ef90fc: name=dc38bc8f20e64940b260d3f7b260430d peerURLs=https://coreos-2.tux-in.com:2380 clientURLs=https://coreos-2.tux-in.com:2379 isLeader=false
所以我猜我真的没有问题。
有什么想法吗?
谢谢!
【问题讨论】:
-
是的,如果你希望在那里看到 2 个 etcd 实例,我认为你很高兴
-
@Rob - 我可以走了?它一直在等待 etcd。不指定测试证书,kubernetes 怎么知道连接到 etcd?我想这就是它卡在那里的原因。
-
您需要在 kubelet 上指定这些标志。最简单的方法是使用插件。以下是一些文档:coreos.com/os/docs/latest/…。
RKT_OPTS带有 etcd 所需的一组标志,这些标志将被传递到 kubelet 包装器中。 -
@Rob - 所以总之我是对的?自动控制器安装脚本缺少 ETCD tls 证书位置配置,这就是脚本失败的原因?我需要修改脚本是否将dropin配置添加到kubelet才能使安装脚本成功完成安装?
-
@Rob - 我是对的。谢谢
标签: kubernetes coreos rkt