小编Uda*_*rma的帖子

etcdctl引发错误:超出上下文截止日期错误

我正在尝试使用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)

amazon-web-services coreos etcd kubernetes etcd3

6
推荐指数
1
解决办法
2113
查看次数

Docker容器中的配置管理

目前,我有配置文件存储在GitHub中。我有如下格式单一的JSON文件 { DEV: { key1 : val1, key2 : val2 }PROD: { key1 : val1, key2 : val2 } }

我的构建系统克隆了git repo,构建了项目并创建了Docker映像,并将其存储在私有Docker注册表中。我将jar文件和配置文件复制到Docker映像中。每当我启动一个容器时,我都会注入一个环境变量(ENV = DEV / PROD),我的代码将使用该变量读取基于环境的配置。

我在这里有几个问题:

  • 维护特定于环境的配置的最佳方法是什么?

  • 配置文件可能包含敏感数据,例如api密钥和机密信息,在构建Docker映像时如何加密,存储和解密?

  • 如果要更改某些配置,则需要触发构建,因为我的配置文件位于Docker映像内。我可以将配置文件作为卷放置在Docker容器外部,以便我可以替换配置文件并重新启动容器,以便代码读取更新的配置吗?如果要放置在Docker容器之外,是否仍可以使用任何集群管理工具进行容器编排/管理(Kubernetes / ECS)?
  • 通过仅重新启动容器而不是构建新的Docker映像并部署新的容器,使运行在Docker容器中的应用读取更新的配置的方法是什么?

configuration-management continuous-deployment docker devops

5
推荐指数
1
解决办法
1180
查看次数