2

我们的数据中心有一个本地 Kubernetes 部署。我刚刚为 Dex 部署了 pod,配置连接到我们的 LDAP 服务器以允许通过 Dex 进行基于 LDAP 的身份验证,运行测试并能够检索 OpenID 连接令牌进行身份验证。

现在我想更改我们的本地 k8s API 服务器启动参数以启用 OIDC 并将其指向 Dex 容器。

如何在不停机的情况下对我们的 k8s 集群启用 OIDC 到 API 服务器启动命令?正在阅读此文档https://kubernetes.io/docs/reference/access-authn-authz/authentication/但该网站只是说“启用所需的标志”而没有这些步骤

谢谢!

4

2 回答 2

3

几个月前,我在kubeadmn安装的集群上安装了Dex + Active Directory Integration 。

让我们假设 Dex 现在正在运行,并且可以通过 https://dex.example.com访问它。

在这种情况下,..

在 API 服务器级别启用 ODIC 有 3 个步骤:

这些步骤必须在每个 Kubernetes 主节点上完成。

1- SSH 到您的主节点。

$ ssh root@master-ip

2- 编辑 Kubernetes API 配置。

添加 OIDC 参数并相应地修改颁发者 URL。

$ sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml
...
    command:
    - /hyperkube
    - apiserver
    - --advertise-address=x.x.x.x
... 

    - --oidc-issuer-url=https://dex.example.com # <--  Please focus here
    - --oidc-client-id=oidc-auth-client # <--  Please focus here
    - --oidc-username-claim=email # <--  Please focus here
    - --oidc-groups-claim=groups # <--  Please focus here
...

3- Kubernetes API 将自行重启。

我还建议查看完整指南,例如tuto

于 2020-07-15T06:14:43.587 回答
1

OIDC 标志用于 Kubernetes API 服务器。你没有提到你是如何在 prem 上安装 Kubernetes 的。理想情况下,您应该有多个主节点,前面有一个 LoadBalancer。

因此,您将禁用从负载均衡器到一个主节点的流量并登录到该主节点并编辑 api 服务器的清单/etc/kubernetes/manifests并添加 OIDC 标志。一旦您更改了清单 api 服务器 pod 将自动重新启动。

您对所有主节点重复相同的过程,因为在任何给定时间点,您至少有一个可用的主节点,因此不应该有任何停机时间。

于 2020-07-15T05:28:28.380 回答