运营商隐藏应用程序的复杂性和Kubernetes。而不是处理豆荚、StatefulSets吨YAML体现,和各种配置文件,用户谈判Kubernetes API提供一个现成的应用程序。操作员自动规定并公开应用程序所需的所有资源。不过,总有一个风险,用户想要做一些手工可以负面影响应用程序和操作符逻辑。

在这篇文章中,我们将解释如何限制用户的访问范围,避免手动更改数据库集群部署雷竞技下载官网Percona运营商。为此,我们将依靠Kubernetes基于角色的访问控制(RBAC))。

我们的目标

我们将有两个角色:管理员和开发人员。管理员将部署操作,创建必要的角色,和服务帐户。开发人员将能够:

  1. 创建、修改和删除自定义Percona运营商使用的资源雷竞技下载官网
  2. 列出所有的资源,用户可能想要调试的问题

开发人员将能:

  1. 创建、修改或删除任何其他资源

最小特权为Kubernetes

结果,开发人员将能够部署和管理数据库集群通过一个自定义资源,但不能修改任何控股资源,像豆荚,服务,持久卷索赔等。

行动

我们将提供一个示例雷竞技下载官网基于Percona Percona运营商MySQL XtraDB集群(PXC)刚刚版本1.12.0发布

管理员

创建一个专门的名称空间

我们将允许用户管理集群在一个名称空间刺激- - - - - -星展银行:

部署操作符

使用任何中描述的方法我们的文档运营商部署到名称空间。我个人最喜欢将简单的kubectl命令:

创建ClusterRole

ClusterRole资源定义了权限的用户将Kubernetes中一个特定的资源。你可以找到YAML在github库

正如你所看到的,我们允许任何操作pxc.雷竞技下载官网perconacom资源,但限制别人得到,列表和手表。

创建ServiceAccount

我们要生成一个kubeconfig服务帐户。这就是用户要使用连接到Kubernetes API。

创建ClusterRoleBinding

我们需要分配ClusterRoleServiceAccountClusterRoleBinding作为这两个之间的关系。

开发人员

验证

可以- - - - - -命令允许您验证服务帐户真的可以做我们想做的事。让我们试一试:

所有的好。我可以创建Percona 雷竞技下载官网XtraDB集群,但是我不能删除服务。请注意,有时它可能是有用的,允许开发人员删除豆荚迫使集群复苏。如果你觉得需要,请修改ClusterRole。

应用

有很多方法可以使用此服务帐户。你可以阅读更多关于它Kubernetes文档中。快速演示,我们将生成一个kubeconfig,我们可以与我们的用户分享。

运行脚本生成配置。它所做的:

  1. 获取服务帐户秘密资源名
  2. 提取证书颁发机构(ca.crt)内容的秘密
  3. 提取的令牌的秘密
  4. 得到的端点Kubernetes API
  5. 生成kubeconfig使用上述所有

现在让我们来看看它的工作原理如预期:

我能够创建自定义资源和集群。让我们试着删除舱:

自定义资源呢?

结论

雷竞技下载官网Percona运营商自动化Kubernetes数据库的部署和管理。最小特权原则应该应用于最小化的能力没有经验的用户影响可用性和数据完整性。Kubernetes带有复杂的基于角色的访问控制功能,允许你这样做而不需要重塑它在平台或应用程序。

尝试Pe雷竞技下载官网rcona运营商

订阅
通知的
客人

0评论
内联反馈
查看所有评论