kubernetes - 如何在 Kubernetes Dashboard 的自签名证书中添加更多节点
问题描述
我终于设法解决了与如何在主节点的 CA 中添加更多节点有关的问题(如何将额外的节点添加到自签名 k8s 集群的证书授权数据?)。
现在我面临的问题是我想使用 kubeconfig 文件~/.kube/config
来访问仪表板。
我设法通过使用以下语法来解决这个问题:
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://IP:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
token: REDACTED
我遇到的问题是我需要使用其中一个主节点的 IP 才能访问仪表板。我希望能够使用 LB IP 访问仪表板。
我认为这与我之前遇到的相同问题有关,正如我从文件中看到的那样,CA 是自动生成的。
args:
- --auto-generate-certificates
- etc etc
.
.
.
除了在自己身上创建 CA 以使用它们之外,还有什么选项可以在文件中的标志中传递例如 IP1 / IP2 等?
更新:我正在通过推荐的方式部署仪表板kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
(部署仪表板 UI)。部署是在本地进行的,但我已经为集群配置了一个外部负载均衡器(HAProxy),指向 Api 以及 Ingress 和type: LoadBalancer
Ingress。除了仪表板 UI(通过 LB IP)之外,一切似乎都按预期工作。我还在authorization-mode: Node,RBAC
kubeconfig 文件上使用身份验证模式(如果相关)。
我通过 Inress HTTPS 访问仪表板,例如https://dashboard.example.com
。
我得到错误Not enough data to create auth info structure
。token: xxx
从这个问题Kubernetes Dashboard access using config file Not enough data to create auth info structure 中找到了解决方案。.
如果我用主节点切换 LB IP,那么我可以使用 kubeconfig 文件访问 UI。
我现在刚刚更新到最新版本的仪表板 v2.0.5 无法使用 kubeconfig 按钮/文件,但它可以直接使用令牌kubernetes/Dashoboard-v2.0.5。使用以前的版本,一切都按上述方式工作。pod 日志中没有错误日志。
解决方案
推荐阅读
- python - Pandas 数据框值和行条件都依赖于其他列
- pastebin - 如何像 pastebin 一样在线粘贴超文本?
- python - 如何在python中生成倾斜的二维循环
- c++ - 在 C++ 中通过块异步保存大型二进制文件的最佳方法
- java - 无法从 CMD 运行我的 Java 代码,但是当我按下 IDE 上的运行按钮时运行良好
- c - 使用 strlen() 时内存泄漏
- node.js - 带有 Node.js 网络库的 Websocket
- reactjs - 在 mobx 中更新状态时组件不会重新渲染
- javascript - 如何在锚标记悬停时缩放我的自定义光标
- sql - 查询/加入条件,性能达到 170 秒 vs 500 毫秒