TLS上的Kubernetes担保等

时间:2015-09-25 20:23:02

标签: security ssl kubernetes etcd

默认情况下,运行CoreOS,etcd不受保护。为了保护它,我可以使用TLS,这增加了我愿意处理的复杂程度。

现在,Kubernetes是否能够使用TLS安全的etcd集群?

在kubelet和各种pod的配置中,Kubernetes将etcd端点作为参数传递,因此它们需要etcd,并且如果它是安全的,则需要证书与它通信。 如果Kubernetes支持与etcd的TLS连接,它是如何配置的?

由于

2 个答案:

答案 0 :(得分:3)

API服务器是唯一直接与etcd对话的组件。启动API服务器时,您可以传递--etcd-config=/path/to/client/config参数,而不是仅使用--etcd-server指向不安全的etcd服务器

在该配置文件中,您将指定etcd服务器以及用于连接的客户端凭据(证书/密钥)。

格式是go-etcd客户端NewClientFromFile函数所期望的格式,该函数需要Client结构的JSON序列化,特别是configcluster

答案 1 :(得分:3)

进一步挖掘并询问github项目,我被指向这篇文章,希望能回答这个问题:

https://groups.google.com/forum/#!topic/google-containers/bTfEcRQ3N28/discussion

简而言之,配置文件应如下所示:

{
  "cluster": {
    "machines": [
          "https://kube-master.internal:2379",
          "https://kube-minion1.internal:2379",
          "https://kube-minion2.internal:2379"
    ]
  },
  "config": {
    "certFile": "/etc/etcd/kube-master.internal.pem",
    "keyFile": "/etc/etcd/kube-master.internal.key",
    "caCertFiles": [ "/etc/etcd/kubecluster-ca.pem" ],
    "consistency": "STRONG_CONSISTENCY"
  }
}

Haven没有尝试过,但会尽快。