【问题标题】:configure minikube / kubernetes webhook authentication / authorization配置 minikube/kubernetes webhook 认证/授权
【发布时间】:2018-02-18 22:40:57
【问题描述】:

我想启用 kubernetes webhook 令牌身份验证。
我希望让它完全按照官方文档中描述的方式工作 webhook-token-authentication

但是,由于我是 Kubernetes 的新手,所以我很难理解我应该采取哪些步骤来实现我的目标。

前提条件:我在本地使用minikube进行测试。

文档说我必须使用--authentication-token-webhook-config-file,但我不懂基本的东西,例如:

  1. 我在哪里放置授权配置文件?
  2. 如何将上述参数提供给 minikube? (如果我运行minikube start --help,它似乎不支持这个标志。)
  3. 如何为 minikube apiserver 启用 authentication.k8s.io/v1beta1(必填步骤)

【问题讨论】:

    标签: authentication kubernetes minikube


    【解决方案1】:

    我采取了一些措施来解决这个问题

    1.创建指向您的 auth/authz 服务的有效 yaml 或 json 配置文件。

    2。确保您的服务通过https 协议运行 (minikube 和 kubernetes 都不能通过 http 工作)

    虚拟但简单的方法是使用Ngrok,它为您提供https uri,哪个路由到您机器上运行的服务。

    命令看起来像ngrok protocol port -> ngrok http 4567

    3.最后使用命令启动 minikube

    minikube 启动 --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.最后在没有证书的情况下将 test-user 添加到您的 kube 配置文件中并尝试一下。
    运行kubectl --context minikube-auth-test get pods
    如果一切设置正确,您将收到对您的 auth/authz 服务的发布请求

    【讨论】:

      【解决方案2】:

      请注意,身份验证(“authN”)是独立于授权(“authZ”)的一个步骤。您在这里将两者混为一谈,但您不一定必须这样做 - 即您可以使用 webhook 身份验证服务器,然后通过将策略附加到您的身份验证步骤标识的用户来进行通常的 RBAC 授权。

      1. 我在哪里放置授权配置文件?

      这是一个有点棘手的步骤,我认为 minikube 文档中没有详细记录。您需要记住,minikube 为您启动的 kube-apiserver pod 在其自己的容器中运行,因此无法访问您在执行时看到的相同文件系统,例如minikube ssh。您需要将 authn.yaml 配置文件作为卷挂载 - 请参阅 https://github.com/kubernetes/minikube/issues/2767#issuecomment-437299401 了解更多信息。

      1. 如何将上述参数提供给 minikube? (如果我运行 minikube start --help 它似乎不支持这个标志。)
      minikube start \
        --extra-config=apiserver.authentication-token-webhook-config-file=/path/on/host/to/authn.yaml
      

      请记住,正如我上面提到的,/path/on/host不是指的是您的主机(您的笔记本电脑、台式机、工作站),而是指 minikube 主机 VM。

      1. 如何启用authentication.k8s.io/v1beta1
      minikube start \
        --extra-config=apiserver.authentication-token-webhook-version=authentication.k8s.io/v1beta1
      

      【讨论】:

        【解决方案3】:

        请参阅示例 auth webhook 存储库以获取步骤。 https://github.com/dinumathai/auth-webhook-sample#deploy-in-minikube

        如果您在启动 minikube 时遇到任何问题。做api服务器容器的“minikube ssh”和“docker log”。

        【讨论】:

          猜你喜欢
          • 2017-03-11
          • 2018-12-11
          • 2013-05-31
          • 2018-07-25
          • 2018-05-29
          • 2010-11-14
          • 2021-11-08
          • 2013-08-08
          相关资源
          最近更新 更多