如何编辑 OIDC 的 Kubernetes 集群值?

如何编辑 OIDC 的 Kubernetes 集群值?

我们计划在 Kubernetes 中实现 OpenID 身份验证,我正在寻找一种将 oidc-issue-url 添加到 Kubernetes 集群的方法,如下所述Kubernetes OpenID

但是我无法找到集群配置。如何使用 kubectl 添加或编辑 Kubernetes 集群 API 服务器的值?

答案1

你应该使用kube-api服务器

Kubernetes API 服务器验证并配置 API 对象(包括 Pod、服务、复制控制器等)的数据。API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端,所有其他组件都通过该前端进行交互。

kube-apiserver [flags]

如果使用 科普斯,运行 kops edit cluster 并添加:

spec:
  kubeAPIServer:
    oidcIssuerURL: ISSUER_URL
    oidcClientID: YOUR_CLIENT_ID

如果你正在使用 kube-aws,添加以下内容至 cluster.yaml

       oidc:
         enabled: true
         issuerUrl: ISSUER_URL
         clientId: YOUR_CLIENT_ID

您可以阅读更多关于设置的信息这里,你也可以考虑使用 库贝登录

编辑:

kube-apiserver正在作为 Docker 容器在您的主节点上运行。因此,二进制文件位于容器内,而不是主机系统上。它由主节点kubelet从位于的文件启动/etc/kubernetes/manifestskubelet正在监视此目录,并将启动此处定义为“静态 Pod”的任何 Pod。

要配置kube-apiserver命令行参数,您需要/etc/kubernetes/manifests/kube-apiserver.yaml在主服务器上进行修改。

答案2

接受的答案是正确的,修改清单文件/etc/kubernetes/manifests/kube-apiserver.yaml并添加 oidc 标志,如https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/将为您的 apiserver 配置 oidc。

当我在研究配置 oidc 时遇到的问题时遇到此线程时,我想添加两个对我有帮助的内容:

  1. 如果要配置带冒号的组或用户前缀,语法需要像这样,以避免在解析清单时出现语法错误
    - "--oidc-groups-prefix=oidc:"
    - "--oidc-username-prefix=oidc:"
  1. 设置 --oidc-ca-file 时,请确保指向的 ca 文件首先存在。如果不存在,apiserver 将不会启动,日志也不会很有用

相关内容