gpt4 book ai didi

authentication - 针对 API 服务器的 kubernetes 身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:18 24 4
gpt4 key购买 nike

我从头开始设置了一个 kubernetes 集群。这只是意味着我没有使用其他人提供的服务,而是使用了它自己的k8s安装程序。之前我们有其他集群,但是有了供应商,他们给你 tls cert and key 用于 auth 等。现在这个集群是我自己设置的,我可以通过 kubectl 访问>:

$ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 21h
$

我也试过this我可以添加自定义 key ,但是当我尝试通过 curl 查询时,我得到 pods is forbidden: User "system:anonymous"cannot list resource "pods in API group ""at the cluster scope.

我不知道从哪里可以获得用户使用 tls 身份验证 API 进行身份验证的证书和 key 。我试图了解官方文档,但我一无所获。有人可以帮我找到这些文件在哪里,或者如何添加或获取可用于其余 API 的证书吗?

Edit1:我的 .kube.config 文件如下所示:

apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0t(...)=
server: https://private_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: LS0tLS(...)Qo=
client-key-data: LS0(...)tCg==

它在本地主机上正常工作。另一方面,我注意到了一些事情。从本地主机,我可以通过使用 this 生成 token 来访问集群方法。

另请注意,目前我不介意为多个用户创建多个角色等。我只需要从远程访问 API 并且可以使用“默认”身份验证或角色。现在,当我尝试从远程执行相同操作时,我得到以下信息:

  1. 我尝试使用该配置从远程运行kubectl get all,它运行了一段时间然后结束于无法连接到服务器:拨号tcpprivate_IP: 6443: i/o 超时。
  2. 发生这种情况是因为配置有 private_IP,然后我将 IP 更改为 Public_IP:6443,现在得到以下信息:无法连接到服务器: x509: 证书对 some_private_IP、My_private_IP 有效,对 Public_IP:6443 无效
  3. 请注意这是 AWS ec2 实例,带有弹性 IP(您可以将弹性 IP 视为传统设置中的公共(public) IP,但此公共(public) IP在您的公共(public)路由器上,然后此路由器将请求路由到您在专用网络上的实际服务器)。对于像我说的 AWS 粉丝,我不能在这里使用 EKS 服务。

那么我怎样才能让它能够使用公共(public) IP?

最佳答案

看来您的主要问题是 TLS 服务器证书验证。

一个选项是告诉 kubectl 跳过服务器证书的验证:

kubectl --insecure-skip-tls-verify ...

这显然有可能“不安全”,但这取决于您的用例

另一种选择是使用添加到服务器证书的公共(public) IP 地址重新创建集群。并且还应该可以只使用 kubeadm 重新创建证书,而无需重新创建集群。关于后两点的详细信息可以在this answer中找到。 .

关于authentication - 针对 API 服务器的 kubernetes 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com