【问题标题】:installing kubernetes on coreos with rkt and automated script使用 rkt 和自动化脚本在 coreos 上安装 kubernetes
【发布时间】:2017-02-06 05:18:23
【问题描述】:

我正在尝试使用https://github.com/coreos/coreos-kubernetes/tree/master/multi-node/generic 的脚本在我家中的真实(非虚拟)coreos 服务器上安装带有 rkt 的 kuberentes,但我有一些问题。

  1. 我的 etcd2 正在使用 tls 密钥,我在脚本中看不到可以定义证书所在位置的任何位置。
  2. 我可以为ADVERTISE_IPCONTROLLER_ENDPOINT 提供域而不是IP 吗?
  3. 当我尝试手动安装 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


【解决方案1】:

我的 etcd2 正在使用 tls 密钥,我在脚本中看不到可以定义证书所在位置的任何地方。

这些脚本不会启动 etcd 服务器。您需要手动设置一个,并且能够使用 TLS 和任意数量的节点。这在文档的当前形式中并不清楚,我将尝试 PR 修复。

我可以为 ADVERTISE_IP 和 CONTROLLER_ENDPOINT 提供域而不是 IP 吗?

只有 CONTROLLER_ENDPOINT 是域名。

当我尝试手动安装 kubernetes 时,我需要启动 rkt 服务 api。它没有在文档中说明它需要在这里,是否意味着如果我使用这些脚本就不需要它?还是只是文件中缺少的东西?

这些脚本包括/启动 rkt API 服务。如下图,它还有一个Restart参数集(source)

[Unit]
Before=kubelet.service

[Service]
ExecStart=/usr/bin/rkt api-service
Restart=always
RestartSec=10

[Install]
RequiredBy=kubelet.service

【讨论】:

  • 非常感谢您的回答。我对我的 etcd 问题还不够清楚。更新主帖。
  • github.com/coreos/coreos-kubernetes/issues/700添加了一个关于etcd tls的问题
  • 顺便说一句,我检查了 ADVERTISE_IP 不能有域,只有一个 IP 地址。
猜你喜欢
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
  • 2018-03-04
  • 2015-02-17
  • 2014-11-02
  • 1970-01-01
相关资源
最近更新 更多