我正在尝试使用coreos cloud-config在AWS上创建一个单节点etcd集群。我创建了一个Route53记录集,其值etcd.uday.com具有指向ELB的别名,该别名指向ec2实例。Etcd运行成功,但是当我运行etcd成员列表命令时,出现以下错误
ETCDCTL_API=3 etcdctl member list \
--endpoints=https://etcd.udayvishwakarma.com:2379 \
--cacert=./ca.pem \
--cert=etcd-client.pem \
--key=etcd-client-key.pem
Error: context deadline exceeded
Run Code Online (Sandbox Code Playgroud)
但是,当将--insecure-skip-tls-verify标志添加到etcdctl member list命令时,它将列出成员。我已经cfssl使用以下配置生成了证书
ca.json
{
"CN": "Root CA",
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "UK",
"L": "London",
"O": "Kubernetes",
"OU": "CA"
}
],
"ca": {
"expiry": "87658h"
}
}
Run Code Online (Sandbox Code Playgroud)
ca.config
{
"signing": {
"default": {
"expiry": "2190h"
},
"profiles": {
"client": {
"expiry": "8760h",
"usages": [
"signing",
"key encipherment", …Run Code Online (Sandbox Code Playgroud) 目前,我有配置文件存储在GitHub中。我有如下格式单一的JSON文件
{
DEV:
{ key1 : val1, key2 : val2 },
PROD:
{ key1 : val1, key2 : val2 }
}。
我的构建系统克隆了git repo,构建了项目并创建了Docker映像,并将其存储在私有Docker注册表中。我将jar文件和配置文件复制到Docker映像中。每当我启动一个容器时,我都会注入一个环境变量(ENV = DEV / PROD),我的代码将使用该变量读取基于环境的配置。
我在这里有几个问题:
维护特定于环境的配置的最佳方法是什么?
配置文件可能包含敏感数据,例如api密钥和机密信息,在构建Docker映像时如何加密,存储和解密?
configuration-management continuous-deployment docker devops