配置 minikube / kubernetes webhook 身份验证/授权
configure minikube / kubernetes webhook authentication / authorization
我想启用 kubernetes webhook 令牌身份验证。
我希望它能完全按照官方文档中描述的方式工作
webhook-token-authentication
然而,由于我是 kubernetes 的新手,所以我很难理解我应该采取哪些步骤来实现我的目标。
前提条件:我正在使用minikube在本地进行测试。
文档说我必须使用 --authentication-token-webhook-config-file
但我不明白基本的东西,例如:
- 我在哪里放置带有授权配置的文件?
- 如何将以上参数提供给minikube?
(如果我 运行
minikube start --help
它似乎不支持这个标志。)
- 如何为 minikube apiserver 启用
authentication.k8s.io/v1beta1
(必需步骤)
我采取了几个步骤来解决这个问题
1.创建指向您的 auth/authz 服务的有效 yaml 或 json 配置文件。
2。确保您的服务 运行ning 通过 https
协议
(minikube 和 kubernetes 都无法通过 http
)
Dummy but simple way is to use Ngrok which gives you https
uri which route to service running on your machine.
the command will look like ngrok protocol port
-> ngrok http 4567
3。最后使用 command
启动 minikube
minikube start
--extra-config apiserver.Authentication.WebHook.ConfigFile=/Users/username/auth.yml
--extra-config apiserver.Authorization.Mode=Webhook
--extra-config apiserver.Authorization.WebhookConfigFile=/Users/username/authz.yml
注意:默认情况下,minikube 会挂载您的 Users
目录,因此您可以通过 /Users/username/path-to-file.yml
访问配置文件
4.最后将测试用户添加到没有证书的 kube 配置文件中并尝试一下。
运行kubectl --context minikube-auth-test get pods
如果一切设置正确,您将收到 post 对 auth/authz 服务的请求
请注意,身份验证(“authN”)是独立于授权(“authZ”)的步骤。您在这里将两者混为一谈,但您不一定必须这样做 - 即您可以使用 webhook 身份验证服务器,然后通过将策略附加到您的身份验证步骤标识的用户来进行通常的 RBAC 授权。
- where do i place file with authorization config ?
这是一个有点棘手的步骤,我认为 minikube 文档中没有详细记录。您需要记住,minikube 为您启动的 kube-apiserver
pod 在其自己的容器中运行,因此无法访问您在执行操作时看到的相同文件系统。 minikube ssh
。您需要将 authn.yaml
配置文件作为一个卷安装 - 有关更多信息,请参阅 https://github.com/kubernetes/minikube/issues/2767#issuecomment-437299401。
- how to supply above parameter to minikube? (If i run minikube start --help it doesn't seem support this flag.)
minikube start \
--extra-config=apiserver.authentication-token-webhook-config-file=/path/on/host/to/authn.yaml
请记住,正如我上面提到的,/path/on/host
不是 指的是您的主机(您的笔记本电脑、台式机、工作站),而是指 minikube 主机 VM。
- how do i enable
authentication.k8s.io/v1beta1
minikube start \
--extra-config=apiserver.authentication-token-webhook-version=authentication.k8s.io/v1beta1
请参考示例 auth webhook 存储库以获取步骤。
https://github.com/dinumathai/auth-webhook-sample#deploy-in-minikube
如果您在启动 minikube 时遇到任何问题。执行 api 服务器容器的“minikube ssh”和“docker 日志”。
我想启用 kubernetes webhook 令牌身份验证。
我希望它能完全按照官方文档中描述的方式工作
webhook-token-authentication
然而,由于我是 kubernetes 的新手,所以我很难理解我应该采取哪些步骤来实现我的目标。
前提条件:我正在使用minikube在本地进行测试。
文档说我必须使用 --authentication-token-webhook-config-file
但我不明白基本的东西,例如:
- 我在哪里放置带有授权配置的文件?
- 如何将以上参数提供给minikube?
(如果我 运行
minikube start --help
它似乎不支持这个标志。) - 如何为 minikube apiserver 启用
authentication.k8s.io/v1beta1
(必需步骤)
我采取了几个步骤来解决这个问题
1.创建指向您的 auth/authz 服务的有效 yaml 或 json 配置文件。
2。确保您的服务 运行ning 通过 https
协议
(minikube 和 kubernetes 都无法通过 http
)
Dummy but simple way is to use Ngrok which gives you
https
uri which route to service running on your machine.the command will look like
ngrok protocol port
->ngrok http 4567
3。最后使用 command
启动 minikubeminikube start --extra-config apiserver.Authentication.WebHook.ConfigFile=/Users/username/auth.yml --extra-config apiserver.Authorization.Mode=Webhook --extra-config apiserver.Authorization.WebhookConfigFile=/Users/username/authz.yml
注意:默认情况下,minikube 会挂载您的 Users
目录,因此您可以通过 /Users/username/path-to-file.yml
4.最后将测试用户添加到没有证书的 kube 配置文件中并尝试一下。
运行kubectl --context minikube-auth-test get pods
如果一切设置正确,您将收到 post 对 auth/authz 服务的请求
请注意,身份验证(“authN”)是独立于授权(“authZ”)的步骤。您在这里将两者混为一谈,但您不一定必须这样做 - 即您可以使用 webhook 身份验证服务器,然后通过将策略附加到您的身份验证步骤标识的用户来进行通常的 RBAC 授权。
- where do i place file with authorization config ?
这是一个有点棘手的步骤,我认为 minikube 文档中没有详细记录。您需要记住,minikube 为您启动的 kube-apiserver
pod 在其自己的容器中运行,因此无法访问您在执行操作时看到的相同文件系统。 minikube ssh
。您需要将 authn.yaml
配置文件作为一个卷安装 - 有关更多信息,请参阅 https://github.com/kubernetes/minikube/issues/2767#issuecomment-437299401。
- how to supply above parameter to minikube? (If i run minikube start --help it doesn't seem support this flag.)
minikube start \
--extra-config=apiserver.authentication-token-webhook-config-file=/path/on/host/to/authn.yaml
请记住,正如我上面提到的,/path/on/host
不是 指的是您的主机(您的笔记本电脑、台式机、工作站),而是指 minikube 主机 VM。
- how do i enable
authentication.k8s.io/v1beta1
minikube start \
--extra-config=apiserver.authentication-token-webhook-version=authentication.k8s.io/v1beta1
请参考示例 auth webhook 存储库以获取步骤。 https://github.com/dinumathai/auth-webhook-sample#deploy-in-minikube
如果您在启动 minikube 时遇到任何问题。执行 api 服务器容器的“minikube ssh”和“docker 日志”。