您想了解如何在活动目录中配置 Kubernetes LDAP 身份验证吗? 在本教程中,我们将向您展示如何使用 Windows 活动目录和 LDAP 协议对 Kubernetes 仪表板用户进行身份验证。

• Ubuntu 20
• Ubuntu 19
• Ubuntu 18
• Kubernetes 1.18

本教程将安装单节点库伯内特集群。

在我们的示例中,Kubernetes 主节点的 IP 地址为 192.168.15.200。

在我们的示例中,域控制器的 IP 地址为 192.168.15.10。

库伯内特 - 教程

在此页面上,我们提供对与 Kubernetes 相关的教程列表的快速访问。

教程窗口 - 域控制器防火墙

• IP - 192.168.15.10
• 操作系统 - WINDOWS 2012 R2
• 主机名 - TECH-DC01

首先,我们需要在 Windows 域控制器上创建防火墙规则。

此防火墙规则将允许 Kubernetes 服务器查询活动目录。

在域控制器上,使用高级安全性打开名为 Windows 防火墙的应用程序

创建新的入站防火墙规则。

zabbix active directory

选择"端口"选项。

zabbix windows firewall port

选择 TCP 选项。

选择"特定本地端口"选项。

输入 TCP 端口 389。

zabbix windows firewall port ldap

选择"允许连接"选项。

zabbix windows firewall allow connection

选中"域"选项。

选中"私人"选项。

选中"公共"选项。

Zabbix windows firewall profile

输入防火墙规则的说明。

windows firewall active directory

恭喜您,您已创建了所需的防火墙规则。

此规则将允许 Kubernetes 服务器查询活动目录数据库。

教程窗口 - 域帐户创建

接下来,我们需要在 Active Directory 数据库上创建至少 2 个帐户。

管理员帐户将用于登录到库伯内特仪表板。

BIND 帐户将用于查询活动目录数据库。

在域控制器上,打开名为:活动目录用户和计算机的应用程序

在"用户"容器内创建新帐户。

Zabbix active directory account

创建新帐户命名为:管理员

密码配置为 ADMIN 用户: 123qwe.

此帐户将用于在 Kubernetes Web 界面上进行身份验证。

active directory admin account
zabbix active directory admin properties

创建新帐户名为:绑定

密码配置为 BIND 用户:Kamisama123.

库伯内特将使用此帐户查询活动目录。

active directory bind account
zabbix active directory ldap bind properties

恭喜您,您已经创建了所需的活动目录帐户。

教程窗口 - 域组创建

接下来,我们需要在活动目录上创建一个组。

在域控制器上,打开名为:活动目录用户和计算机的应用程序

在"用户"容器内创建新组。

Radius Active directory group

创建一个名为:KUBERNETES-ADMIN 的新组。

此组的成员将在 Kubernetes 仪表板上具有管理权限。

Kubernetes LDAP authentication group

重要! 将管理员用户添加为 KUBERNETES-ADMIN 的成员。

Kubernetes LDAP Active directory group

恭喜您,您已创建了所需的活动目录组。

教程库伯内特 - 主节点安装

安装所需软件包的列表。

Copy to Clipboard

安装 Docker 服务。

Copy to Clipboard

在启动期间启用 Docker 服务。

Copy to Clipboard

编辑 Docker 服务配置文件。

Copy to Clipboard

在名为的项末尾添加以下配置:EXECSTART

Copy to Clipboard

下面是我们配置之前的文件。

Copy to Clipboard

下面是我们配置后的文件。

Copy to Clipboard

创建系统配置文件。

Copy to Clipboard

这是文件内容。

Copy to Clipboard

启用系统配置文件。

Copy to Clipboard

编辑名为:模块的配置文件。康夫

Copy to Clipboard

在此文件末尾添加以下配置。

Copy to Clipboard

编辑 FSTAB 配置文件并禁用交换内存。

Copy to Clipboard

下面是我们配置之前的文件。

Copy to Clipboard

下面是我们配置后的文件。

Copy to Clipboard

设置唯一的主机名。

Copy to Clipboard

创建文件以配置所需的环境变量。

Copy to Clipboard

这是文件内容。

Copy to Clipboard

重新启动计算机。

Copy to Clipboard

下载并安装库伯内特存储库密钥。

Copy to Clipboard

添加官方的库伯内特存储库。

Copy to Clipboard

安装 Kubernetes 软件包。

Copy to Clipboard

下载所需的库伯内特图像。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

初始化库伯内特群集。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

请注意向 Kubernetes 群集添加节点的命令。

Copy to Clipboard

在 Kubernetes 配置文件上设置正确的文件权限。

Copy to Clipboard

安装所需的网络配置。

Copy to Clipboard

默认情况下,不允许 Kubernetes 主节点运行 PODS。

可选地,启用 Kubernetes 主节点以运行 PODS。

Copy to Clipboard

在我们的示例中,我们使用的是单节点 Kubernetes 群集。

教程 - 库伯内特仪表板安装

安装所需软件包的列表。

Copy to Clipboard

下载所需的 YAML 文件。

Copy to Clipboard

安装库伯内特仪表板。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

为仪表板创建服务帐户。

Copy to Clipboard

将群集管理员角色配置为仪表板服务帐户。

Copy to Clipboard

为 Apache 代理创建服务帐户。

Copy to Clipboard

将群集管理员角色配置为 Apache 代理帐户。

Copy to Clipboard

列出 Kubernetes 服务器上可用的 Apache 密钥。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

请注意,您的秘密名称将和我们的不一样。

获取 Apache 机密令牌的值。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

请注意 Apache 令牌值。

在我们的示例中,这是令牌值:

Copy to Clipboard

列出仪表板服务群集 IP 地址。

Copy to Clipboard

下面是命令输出。

Copy to Clipboard

请注意群集 IP 地址和 TCP 端口。

在我们的示例中,仪表板群集使用 TCP 端口 443 和 IP 地址 10.107.55.24。

您已完成所需的仪表板配置。

库伯内特代理 - 使用 Apache 的基本用户身份验证

在主节点上,安装 Apache 服务器。

Copy to Clipboard

启用所需的 Apache 模块。

Copy to Clipboard

编辑 Apache 配置文件。

Copy to Clipboard

将以下行添加到此文件的末尾。

Copy to Clipboard

使用 OpenSSL 命令创建私钥和证书。

Copy to Clipboard

输入请求的信息。

Copy to Clipboard

在名为"COMMON_NAME"的选项中,必须输入 IP 地址或主机名。

在我们的示例中,我们使用 IP 地址:192.168.15.200

将现有的 Kubernetes 代理证书和密钥转换为 PEM 格式的单个文件。

Copy to Clipboard

编辑默认网站的 Apache 配置文件。

Copy to Clipboard

这是我们配置之前的文件。

Copy to Clipboard

这是我们配置后的文件。

Copy to Clipboard

将名为 AUTHLDAPURL 的配置项的 IP 地址更改为域控制器的 IP 地址。

更改活动目录中的所有域信息以反映您的环境。

将名为 PROXYPASS 和 PROXYPASSREVERSE 的配置项的 IP 地址更改为仪表板群集的 IP 地址。

将名为 REQUESTHEADER 的 CI 的令牌值更改为之前创建的 Apache 秘密令牌值。

在我们的示例中,我们使用自签名证书启用了 HTTPS。

Copy to Clipboard

在我们的示例中,我们配置了 LDAP 身份验证的使用。

Copy to Clipboard

Apache 将表示用户与仪表板群集 IP 地址之间的 HTTPS 通信。

Copy to Clipboard

Apache 将使用在 Kubernetes 服务器安装期间自动创建的证书和密钥在仪表板上执行相互 TLS 身份验证。

Copy to Clipboard

Apache 服务器将向发送到仪表板的所有数据包添加标头。

此标头名为授权颁发者,包含在 Apache 代理中较早创建的秘密令牌。

Copy to Clipboard

Apache 还将将 HTTP 用户重定向到请求的 URL 的 HTTPS 版本。

Copy to Clipboard

重新启动 Apache 服务。

Copy to Clipboard

打开浏览器并访问 Apache 服务器的 IP 地址的 HTTPS 版本。

在我们的示例中,在浏览器中输入了以下 URL:

• https://192.168.15.200

Apache 服务器将要求您执行用户身份验证。

Kubernetes Dashboard Proxy Authentication

成功登录后,应显示 Kubernetes 仪表板。

Kubernetes Dashboard

Apache 代理将自动使用名为:AUTH HEADER 的功能对 Kubernetes 仪表板进行身份验证。

Kubernetes dashboard Authorization bearer

您已成功完成 Apache 作为 Kubernetes 仪表板的代理的配置。