Kubernetes on TLS 安全 etcd
Kubernetes on TLS secured etcd
运行 CoreOS,etcd 默认不安全。为了保护它,我可以使用 TLS,它增加了我愿意处理的复杂程度。
现在,Kubernetes 可以使用 TLS 保护的 etcd 集群吗?
在 kubelet 和各种 pods 的配置中,Kubernetes 将 etcd 端点作为参数传递,因此它们需要 etcd 并且如果它是安全的则需要证书与其通信。
如果 Kubernetes 支持与 etcd 的 TLS 连接,它是如何配置的?
谢谢
API 服务器是唯一直接与 etcd 通信的组件。启动 API 服务器时,您可以传递一个 --etcd-config=/path/to/client/config
参数,而不是仅使用 --etcd-server
指向不安全的 etcd 服务器
在该配置文件中,您将指定 etcd 服务器以及用于连接的客户端凭据 (cert/key)。
格式是 go-etcd 客户端 NewClientFromFile 函数期望的格式,它期望 Client 结构的 JSON 序列化,特别是 config
和 cluster
键
进一步挖掘并询问 github 项目,我被引导到这个 post 我希望能回答这个问题:
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"
}
}
还没试过,但会尽快的。
运行 CoreOS,etcd 默认不安全。为了保护它,我可以使用 TLS,它增加了我愿意处理的复杂程度。
现在,Kubernetes 可以使用 TLS 保护的 etcd 集群吗?
在 kubelet 和各种 pods 的配置中,Kubernetes 将 etcd 端点作为参数传递,因此它们需要 etcd 并且如果它是安全的则需要证书与其通信。 如果 Kubernetes 支持与 etcd 的 TLS 连接,它是如何配置的?
谢谢
API 服务器是唯一直接与 etcd 通信的组件。启动 API 服务器时,您可以传递一个 --etcd-config=/path/to/client/config
参数,而不是仅使用 --etcd-server
在该配置文件中,您将指定 etcd 服务器以及用于连接的客户端凭据 (cert/key)。
格式是 go-etcd 客户端 NewClientFromFile 函数期望的格式,它期望 Client 结构的 JSON 序列化,特别是 config
和 cluster
键
进一步挖掘并询问 github 项目,我被引导到这个 post 我希望能回答这个问题:
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"
}
}
还没试过,但会尽快的。