当前位置: 首页 > 知识库问答 >
问题:

用户“系统:匿名”无法获取路径“/”

郭曾笑
2023-03-14

我只是在这个链接上设置一个kubenetes集群 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#multi-platform 我检查kubectl获取节点,然后主节点是就绪的,但是当我访问链接 https://k8s-master-ip:6443/ 它显示错误:用户“系统:匿名”无法获取路径“/”。我错过了什么技巧?

共有3个答案

姜鹏程
2023-03-14

默认情况下,您的集群绑定具有系统:匿名设置,可阻止集群访问。

执行以下命令,它会将群集角色设置为群集管理员,这将为您提供所需的访问权限。

kubectl创建集群绑定集群-系统-匿名-集群角色=集群-管理员-用户=系统:匿名

司马晋
2023-03-14

最新的kubernetes部署工具在集群上启用了RBAC。Jenkins在访问https://192.168.70.94:6443/api/v1/...时被降级为包罗万象的用户系统:匿名。该用户在库贝-apiserver上几乎没有特权。

底线是,Jenkins需要使用kube-apiserver进行身份验证——要么使用不记名令牌,要么使用由k8s集群的CA密钥签名的客户端证书。

方法1.如果Jenkins托管在k8s集群中,则首选此方法:

  1. 在 k8s 中为插件创建服务帐户
  2. 创建一个 RBAC 配置文件(即与服务帐户关联的角色/角色绑定或群集角色/群集角色绑定)
  3. 配置插件以在访问 URL 时使用服务帐户的令牌 https://192.168.70.94:6443/api/v1/...

方法二。如果Jenkins托管在k8s集群之外,上面的步骤仍然可以使用。替代方法是:

  1. 创建与 k8s 群集的 CA 关联的客户端证书。您必须找到 CA 密钥的保存位置,并使用它来生成客户端证书。
  2. 创建一个 RBAC 配置文件(即与客户端证书关联的角色/角色绑定或群集角色/群集角色绑定)
  3. 配置插件以在访问 URL 时使用客户端证书 https://192.168.70.94:6443/api/v1/...

这两种方法在任何情况下都有效。我相信方法1对你来说会更简单,因为你不用再摆弄CA密钥了。

巴博耘
2023-03-14

希望你看到这样的东西:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403
}

这很好,因为不是每个人都应该能够访问集群,如果您想看到服务运行“kubectl proxy”,这应该能够从外部世界访问服务。

C:\dev1> kubectl proxy
Starting to serve on 127.0.0.1:8001

当您点击127.0.0.1:8001时,您应该会看到服务列表。

 类似资料:
  • X1.0新增 sp_get_host() 功能: 返回带协议的域名 参数: 无 返回: 类型string 带协议的域名,如http://www.thinkcmf.com

  • 我正在开发一个将托管在tomcat服务器上的应用程序。我正在寻找获得用户名的详细信息,用户将登录到他的windows系统跟踪目的。在通过浏览器访问应用程序之前,是否有一种方法可以获得用户登录到系统的用户名详细信息?

  • 我试图得到系统路径,其中jar位于运行时。 下面的代码在REPL中工作,但是,如果我使用sbt组装jar,它会失败, SBT错误如下, 运行java.lang.运行时异常:未检测到主类。在scala.sys.package$。错误(package.scala:27)[跟踪]堆栈跟踪抑制:运行最后一次编译:运行完整的输出。[错误](编译:运行)未检测到主类。[错误]总时间:0秒,4月13日2016

  • 我将jenkins安装到windows 10。当我访问http://localhost:8080/,我必须输入用户名和密码。 但我不会像截图显示的那样显示秘密文件夹: 在包含jenkins.war的路径文件夹中运行时,我得到了这个异常 你能帮我解决那个问题吗?。 如有任何建议,将不胜感激。提前谢谢。

  • 问题内容: 在我的应用程序中,我想使用文件夹中存在的资源 为了获得该路径,我使用了位于以下位置的这段代码: 显示的错误是: 如果我更改该代码: 变量absolutePath采用以下值: 为什么它指向目标路径?我该如何更改? 问题答案: 我的猜测是,绝对路径问题是由于maven POM目标中的outputDirectory引起的。在我的项目中,outputDirectory war / WEB-IN

  • 我需要的是一种适当的方法,让这个方法获得值。 将这个“sdk.root”放在哪里,以便IntelliJ提取它?在属性文件中还是在bash中?