2015-09-25 46 views
2

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

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

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

谢谢

回答

3

进一步挖掘,并要求在GitHub的项目,我被指挥对这个职位,我希望回答了这个问题:

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

总之config文件应该是这样的:

{ 
    "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" 
    } 
} 

还没有试过,但会尽快。

+0

谷歌组主题不再存在。 –

+0

因为现在你需要使用etcd上的标志。请参阅etcd api doc – MrE

+0

https://groups.google.com/forum/#!searchin/kubernetes-users/$20"consistency"$3A$20"STRONG_CONSISTENCY"|sort:date/kubernetes-users/bTfEcRQ3N28/yEQJjVL4AAAJ – Muzammil

3

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

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

的预期格式由go-ETCD客户NewClientFromFile功能,预计Client结构的JSON序列化,特别是configcluster

+0

谢谢...你有编写这个配置文件的文档的一些链接?什么是格式和使用的关键。证书/密钥有点模糊。 – MrE

+0

PS:PodMaster也参考--etcd-servers – MrE

+0

我没有意识到这一点... podmaster不在核心存储库...我打开一个问题,使其行为与api服务器(https: //github.com/kubernetes/contrib/issues/133) –