有一些很棒的admission controllers,如DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize,它们为您的集群带来了一些k8s最佳实践。
为了启用准入控制器,您必须拥有对GKE server的管理员访问权限,但在k8s上您没有。
那么我们如何在GKE中启用这些准入控制器呢?
发布于 2020-08-19 18:34:22
不可能修改已启用的准入控制器,因为这将需要修改GKE服务器配置选项,而这在--enable-admission-plugins
上是不可能的,目前也没有任何替代方法来设置此选项。
现在,看一下前面提到的每个控制器:
storageclass.kubernetes.io/is-default-class: "true"
注释。要使用不同的SC作为默认设置,请从标准存储类中删除此注释,然后将其添加到您选择的SC中。kubernetes.io/pv-protection
和kubernetes.io/pvc-protectionfinalizers
分别添加到PV。PVC,正在使用中,阻止其删除。allowVolumeExpansion: false
注释1创建一个存储类来验证这一点(请注意,标准SC允许扩展),创建一个PVC并尝试增加它的大小。您将收到如下错误消息:错误: persistentvolumeclaims "my- pvc“无法修补: persistentvolumeclaims "my- pvc”被禁止:只能调整动态提供的pvc的大小,并且提供pvc的存储类必须支持调整的大小。
最后,如果你想启用一个在GKE上实际上没有启用的控制器,你需要重新实现并将其作为一个独立的服务部署到你的集群中,并使用K8s的ValidatingWebhookConfiguration或MutatingWebhookConfiguration通过webhook 2连接你的服务。除了从头开始实现这一点之外,还有许多项目可以提供帮助,OPA Gatekeeper 3和Metacontroller 4列出了一些示例。
https://stackoverflow.com/questions/63483346
复制相似问题