使用rkt和自动脚本

时间:2016-09-28 09:50:39

标签: kubernetes coreos rkt

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

  1. 我的etcd2正在使用tls密钥,我无法在脚本中的任何位置看到我可以定义证书所在的位置。
  2. 我可以为ADVERTISE_IPCONTROLLER_ENDPOINT提供域而不是IP吗?
  3. 当我尝试手动安装kubernetes时,我需要启动rkt服务api。它没有在这里需要的文件中说明,这是否意味着如果我使用这些脚本我就不需要它?或者它只是文件中缺少的东西?
  4. 谢谢!

    更新

    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
    

    所以我猜我在那里真的没有问题。

    任何想法?

    谢谢!

1 个答案:

答案 0 :(得分:1)

  

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

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

  

我可以为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