使用 rkt 和自动化脚本在 coreos 上安装 kubernetes
installing kubernetes on coreos with rkt and automated script
我正在尝试使用 https://github.com/coreos/coreos-kubernetes/tree/master/multi-node/generic 上的脚本在我家里的真实(非虚拟)coreos 服务器上安装带有 rkt 的 kuberentes,我有一些问题。
- 我的 etcd2 使用的是 tls 密钥,我在脚本中看不到任何可以定义证书所在位置的地方。
- 我可以为
ADVERTISE_IP
和 CONTROLLER_ENDPOINT
提供域而不是 IP 吗?
- 当我尝试手动安装 kubernetes 时,我需要启动 rkt 服务 api。它没有在文档中说明它在这里需要它,是否意味着如果我使用这些脚本就不需要它?或者它只是文档中缺少的东西?
谢谢!
更新
罗布,非常感谢您的回复。我对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
脚本时,它 returns 并重复以下输出:
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
所以我猜我真的没有问题。
有什么想法吗?
谢谢!
my etcd2 is using tls keys, I can't see anywhere in the script where I can define where the certificates are located.
这些脚本不会启动 etcd 服务器。您将需要手动设置一个,并且能够使用 TLS 和任意数量的节点。这在文档的当前形式中并不清楚,我将尝试通过 PR 来修复。
can I supply a domain instead of IP for ADVERTISE_IP and CONTROLLER_ENDPOINT ?
只有CONTROLLER_ENDPOINT是域名。
when I tried to install kubernetes manually I needed start the rkt service api. it doesn't state in the documents that it needed here, does it mean that I don't need it if I use these scripts? or is it just something that's missing in the documents?
这些脚本 include/start rkt API 服务。正如您在下面看到的,它还有一个 Restart 参数集 (source):
[Unit]
Before=kubelet.service
[Service]
ExecStart=/usr/bin/rkt api-service
Restart=always
RestartSec=10
[Install]
RequiredBy=kubelet.service
我正在尝试使用 https://github.com/coreos/coreos-kubernetes/tree/master/multi-node/generic 上的脚本在我家里的真实(非虚拟)coreos 服务器上安装带有 rkt 的 kuberentes,我有一些问题。
- 我的 etcd2 使用的是 tls 密钥,我在脚本中看不到任何可以定义证书所在位置的地方。
- 我可以为
ADVERTISE_IP
和CONTROLLER_ENDPOINT
提供域而不是 IP 吗? - 当我尝试手动安装 kubernetes 时,我需要启动 rkt 服务 api。它没有在文档中说明它在这里需要它,是否意味着如果我使用这些脚本就不需要它?或者它只是文档中缺少的东西?
谢谢!
更新
罗布,非常感谢您的回复。我对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
脚本时,它 returns 并重复以下输出:
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
所以我猜我真的没有问题。
有什么想法吗?
谢谢!
my etcd2 is using tls keys, I can't see anywhere in the script where I can define where the certificates are located.
这些脚本不会启动 etcd 服务器。您将需要手动设置一个,并且能够使用 TLS 和任意数量的节点。这在文档的当前形式中并不清楚,我将尝试通过 PR 来修复。
can I supply a domain instead of IP for ADVERTISE_IP and CONTROLLER_ENDPOINT ?
只有CONTROLLER_ENDPOINT是域名。
when I tried to install kubernetes manually I needed start the rkt service api. it doesn't state in the documents that it needed here, does it mean that I don't need it if I use these scripts? or is it just something that's missing in the documents?
这些脚本 include/start rkt API 服务。正如您在下面看到的,它还有一个 Restart 参数集 (source):
[Unit]
Before=kubelet.service
[Service]
ExecStart=/usr/bin/rkt api-service
Restart=always
RestartSec=10
[Install]
RequiredBy=kubelet.service