在OpenShift上建立了一个由三节点的Vault Entertainment HA集群, 从纸面上看,这是有详细记载的特征的简单组合。
在实践中,是一系列陷阱——一些微妙而壮观的陷阱——花了多次会议才能充分发挥作用。
这篇文章涵盖了我遇到的4个主要挑战领域:直接打开OpenShift, 安全地连接自动解封令牌流, 在滚动更新过程中安全管理Raft的法定人数, 我将专注于什么让我无法警惕 正确的解决方案是什么样子 部署是GitOps通过ArgoCD管理,使用三源Helm模式:上游Vault图,取自repo的值文件,以及Helm无法清理的集群级资源(SCC, Routes,CfigMaps)的原始运算.
挑战1:OpenShift上的IPC LOCK 问题断层需要Linux的能力,这样它就可以调用来防止秘密被交换到磁盘上.
这是不可谈判的——如果能力缺失,沃特在启动时就会出站.
在 OpenShift 上,此操作会进入默认的安全背景约束(SCC),这不包括在其允许的能力中.
我发现这困难的方式 当所有三个舱 在部署后立即进入。
更令人困惑的是,错误消息因图像不同而不同: 上游图像(:: 故障开始,呼叫,获得,以及退出: 红帽伙伴图像(: 二进制飞船通过.
当内核从执行时间的边界设定中掉出(因为SCC不允许)时,它本身甚至会在Vault开始前失败: 两个根源都是一样的——在SCC中没有,但症状看起来完全不同,在调试时需要时间.
解决方案:自定义 SCC 固定是作为允许和默认能力添加的自定义 SCC : 自定义 SCC 并不会自动获得内置方式, 因此您还需要手动创建一个并绑定到 Vault 服务账户: 捕获的 SCC 优先级 这是不明显的部分。
当多个SCC拥有相同的优先级时,OpenShift的SCC解析器会根据一个确定但非明显的命令算法选择一个.
在我的集群中,一个先前存在的默认优先权为10.
尽管服务账户与我的新SCC有联系,但舱内集装箱没有在舱面上明确提示,就降落并失败了。
固定装置是在容器中明确声明: 这个提示引导SCC解析器从任何没有广告支持的相同优先的SCC上选择.
即使在设定时也需要提示——没有提示,解析器可能永远不会到达你的SCC.
也从红帽伙伴的影像转到上游。
没有前缀,RHCOS短名重写会将不合格的图像标记重写到拉出时间.
这在理论上是好的,但实际上合伙人镜像在节点之间有不同的缓存字节(为同名标记的不同文摘),并且正在使用浮动标记而不是被固定的版本.
一旦SCC到位,带有明确登记和被贴标签的上游形象便能正常工作。
挑战2:自动解封托肯流 为何HCP故障专用?.
在进入力学之前,值得解释HCP Vault作为中转无封接提供商而不是自我托管的例子的选择.
中转自动-解封机制不需要HCP Vault——任何"断层"集群(包括社区版)都可以托管一个中转秘密引擎并充当解封提供者.
问题在于靴子陷阱悖论:如果你的过境解封集群也是自我托管的,你需要一个解封的方法才能解封其它东西.
你刚刚把问题推到了一个高度 HCP的"断层"专注的侧面 完全。
HashiCorp运营集群,处理HA故障,应用升级,并管理基础基础设施.
关键是,它使用云KMS 自己的unseali