1

我一直在努力在使用TLS保护的情况api-server 1.2.2下运行。etcd

我正在从升级1.1.21.2.2

1.1.2我使用--etcd-config标志并且有一个看起来像这样的文件:

{
  "cluster": {
    "machines": [
      "https://XXX.XXX.XXX.XXX:2379",
      "https://XXX.XXX.XXX.XXY:2379",
      "https://XXX.XXX.XXX.XXZ:2379"
    ]
  },
  "config": {
    "certFile": "/etc/ssl/etcd/etcd-peer.cert.pem",
    "keyFile": "/etc/ssl/etcd/private/etcd-peer.key.pem",
    "caCertFiles": [
      "/etc/ssl/etcd/ca-chain.cert.pem"
    ],
    "consistency": "STRONG_CONSISTENCY"
  }
}

现在这不再受支持,我切换到使用标志:

--etcd-cafile="/etc/ssl/etcd/ca-chain.cert.pem"
--etcd-certfile="/etc/ssl/etcd/etcd-peer.cert.pem"
--etcd-keyfile="/etc/ssl/etcd/private/etcd-peer.key.pem"    
--etcd-servers="https://XXX.XXX.XXX.XXX:2379, https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:2379"

现在我收到此错误:

F0421 00:54:40.133777       1 server.go:291] Invalid storage version or misconfigured etcd: open "/etc/ssl/etcd/etcd-peer<nodeIP>.cert.pem": no such file or directory

所以,它似乎找不到证书文件。文件路径和名称与以前相同,并且它们的挂载hostPath方式与 v1.1.2 完全相同,所以我不明白为什么 api-server 找不到它们。

我一直试图通过简单地command从 pod 中切换来弄清楚文件路径发生了什么

- /hyperkube
- api-server
...

- /bin/sleep
- 60

kubelet由于某种我不明白的原因,不会启动这个 pod。

它与yaml文件名或其他东西有关吗?

我不明白发生了什么为什么kubelet不能使用这个命令运行。

对此的任何帮助将不胜感激。

谢谢

更新

将命令替换为后,我能够进入正在运行的容器/hyperkube scheduler

我可以收集 apiserver 抱怨的文件,所以我不明白为什么找不到它们。

4

1 回答 1

0

好吧,罪魁祸首就是“”

--etcd-cafile="/etc/ssl/etcd/ca-chain.cert.pem"
--etcd-certfile="/etc/ssl/etcd/etcd-peer.cert.pem"
--etcd-keyfile="/etc/ssl/etcd/private/etcd-peer.key.pem"    
--etcd-servers="https://XXX.XXX.XXX.XXX:2379, https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:2379"

是错的

但这有效:

--etcd-cafile=/etc/ssl/etcd/ca-chain.cert.pem
--etcd-certfile=/etc/ssl/etcd/etcd-peer.cert.pem
--etcd-keyfile=/etc/ssl/etcd/private/etcd-peer.key.pem   
--etcd-servers=https://XXX.XXX.XXX.XXX:2379,https://XXX.XXX.XXX.XXY:2379,https://XXX.XXX.XXX.XXZ:237
于 2016-04-21T19:28:34.623 回答