在https://coreos.com/kubernetes/docs/latest/getting-started.html之后,我想为我的kubernetes集群生成我的TLS资产。 我计划通过cloud-config将这些密钥推送到aws-api来创建EC2实例,但我没有提前知道这些实例的公共和私有IP。
我想通过cloud-config将ca证书移动到实例,然后我从一个由systemd单元文件运行的脚本生成这些资产。这里最大的担忧是我不想将ca根证书放入云配置中。
有没有人能解决这种情况?
答案 0 :(得分:0)
根据kube-aws的做法,我可以设置我的 api-server conf :
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
DNS.5 = kubernetes.mydomain.de
IP.1 = 10.3.0.1
添加到“最小配置文件”
DNS.5 = kubernetes.mydomain.de
IP.2 = 10.3.0.1
worker conf 如下所示:
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.*.cluster.internal
这里的技巧是将SAN设置为通配符*.*.cluster.internal
。这样,所有工作人员都可以在内部网络上验证该证书,而不必设置特定的IP地址。